跳到内容

Ruff

Ruff image image image Actions status Discord

文档 | 在线演练场

一款由 Rust 编写,极速的 Python 代码检查工具(Linter)和格式化工具。

Shows a bar chart with benchmark results.

Shows a bar chart with benchmark results.

从零开始对 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(以及数十个插件)、Blackisortpydocstylepyupgradeautoflake 等工具,且执行速度比任何单一工具快几十到几百倍。

Ruff 处于极其活跃的开发状态,并被以下大型开源项目所使用:

...以及更多项目

Ruff 由 Astral 支持,该公司也是 uvty 的创建者。

请阅读发布博文,或最初的项目公告

用户评价

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 太神奇了。