Ruff
一款由 Rust 编写,极速的 Python 代码检查工具(Linter)和格式化工具。
从零开始对 CPython 代码库进行 Lint 检查。
- ⚡️ 速度比现有的检查工具(如 Flake8)和格式化工具(如 Black)快 10-100 倍
- 🐍 可通过
pip安装 - 🛠️ 支持
pyproject.toml配置 - 🤝 兼容 Python 3.14
- ⚖️ 与 Flake8、isort 和 Black 保持直接替换兼容性
- 📦 内置缓存,避免重新分析未修改的文件
- 🔧 支持自动修复,可自动更正错误(例如,自动移除未使用的导入)
- 📏 内置超过 800 条规则,并原生重实现了流行的 Flake8 插件(如 flake8-bugbear)
- ⌨️ 提供 VS Code 等 编辑器集成,以及更多支持
- 🌎 对 Monorepo 友好,支持分层级联配置
Ruff 的目标是在单一、通用的接口下集成更多功能,同时速度比替代工具快几个数量级。
Ruff 可用于替代 Flake8(以及数十个插件)、Black、isort、pydocstyle、pyupgrade、autoflake 等工具,且执行速度比任何单一工具快几十到几百倍。
Ruff 处于极其活跃的开发状态,并被以下大型开源项目所使用:
...以及更多项目。
Ruff 由 Astral 支持,该公司也是 uv 和 ty 的创建者。
用户评价
Sebastián Ramírez, FastAPI 创建者
Ruff 太快了,以至于有时我会在代码中故意写一个 bug,只是为了确认它确实在运行并检查代码。
Nick Schrock, Elementl 创始人, GraphQL 联合创建者
为什么说 Ruff 改变了游戏规则?主要是因为它快了近 1000 倍。千真万确,没有写错。在我们最大的模块(dagster 本身,25 万行代码)上,在我的 M1 芯片上使用 4 核并行运行 pylint 大约需要 2.5 分钟。而对我们的整个代码库运行 ruff 只需要 0.4 秒。
Bryan Van de Ven, Bokeh 联合创建者, Conda 原作者
在我这台机器上,Ruff 比 flake8 快约 150-200 倍,扫描整个存储库大约只需 0.2 秒,而不是原来的约 20 秒。这对本地开发体验是巨大的提升。它的速度快到足以让我将其直接设为 commit hook,这太棒了。
Timothy Crosley, isort 创建者
刚把我的第一个项目切换到 Ruff。目前为止只有一个缺点:它太快了,以至于我直到故意引入一些错误之前都不敢相信它在工作。
Tim Abbott, Zulip 首席开发者 (另见此处)
这简直快得离谱……
ruff太神奇了。