Ruff
一个用 Rust 编写的极速 Python 代码检查器和格式化工具。
从头开始检查 CPython 代码库。
- ⚡️ 比现有的代码检查器(如 Flake8)和格式化工具(如 Black)快 10-100 倍
- 🐍 可通过
pip
安装 - 🛠️ 支持
pyproject.toml
- 🤝 Python 3.13 兼容
- ⚖️ 与 Flake8、isort 和 Black 完全对等
- 📦 内置缓存,避免重新分析未更改的文件
- 🔧 支持修复,可自动纠正错误(例如,自动删除未使用的导入)
- 📏 超过 800 条内置规则,原生重新实现了流行的 Flake8 插件,如 flake8-bugbear
- ⌨️ 为 VS Code 和 更多编辑器 提供官方 编辑器集成
- 🌎 对 Monorepo 友好,具有 分层和级联配置
Ruff 旨在比其他工具快几个数量级,同时将更多功能集成到一个单一的通用接口后面。
Ruff 可以用来替代 Flake8(加上数十个插件)、Black、isort、pydocstyle、pyupgrade、autoflake 等,同时执行速度比任何单个工具快几十甚至几百倍。
Ruff 正在被积极开发,并被用于主要的开源项目中,例如
...以及更多。
Ruff 由 Astral 提供支持。 阅读发布帖子,或原始的项目公告。
用户评价
Sebastián Ramírez,FastAPI 的创建者
Ruff 非常快,以至于有时我会故意在代码中添加一个错误,只是为了确认它实际上正在运行并检查代码。
Nick Schrock, Elementl 的创始人,GraphQL 的共同创建者
为什么 Ruff 是一个颠覆者?主要是因为它快了近 1000 倍。 真的。 不是笔误。 在我们最大的模块(dagster 本身,25 万行代码)上,pylint 在我的 M1 上的 4 个核心上并行处理大约需要 2.5 分钟。 对我们的整个代码库运行 ruff 需要 0.4 秒。
Bryan Van de Ven,Bokeh 的共同创建者,Conda 的原始作者
在我的机器上,Ruff 比 flake8 快约 150-200 倍,扫描整个仓库需要约 0.2 秒而不是约 20 秒。 这对于本地开发来说是一项巨大的生活质量改进。 它足够快,我将其添加为实际的提交钩子,这太棒了。
Timothy Crosley,isort 的创建者
刚刚将我的第一个项目切换到 Ruff。 到目前为止只有一个缺点:它太快了,以至于我不敢相信它在工作,直到我故意引入了一些错误。
Tim Abbott, Zulip 的首席开发人员
这真是太快了...
ruff
太棒了。