跳到内容

Ruff

Ruff image image image Actions status Discord

文档 | 在线体验

一个用 Rust 编写的极速 Python 代码检查器和格式化工具。

Shows a bar chart with benchmark results.

Shows a bar chart with benchmark results.

从头开始检查 CPython 代码库。

  • ⚡️ 比现有的代码检查器(如 Flake8)和格式化工具(如 Black)快 10-100 倍
  • 🐍 可通过 pip 安装
  • 🛠️ 支持 pyproject.toml
  • 🤝 Python 3.13 兼容
  • ⚖️ 与 Flake8、isort 和 Black 完全对等
  • 📦 内置缓存,避免重新分析未更改的文件
  • 🔧 支持修复,可自动纠正错误(例如,自动删除未使用的导入)
  • 📏 超过 800 条内置规则,原生重新实现了流行的 Flake8 插件,如 flake8-bugbear
  • ⌨️ 为 VS Code更多编辑器 提供官方 编辑器集成
  • 🌎 对 Monorepo 友好,具有 分层和级联配置

Ruff 旨在比其他工具快几个数量级,同时将更多功能集成到一个单一的通用接口后面。

Ruff 可以用来替代 Flake8(加上数十个插件)、Blackisortpydocstylepyupgradeautoflake 等,同时执行速度比任何单个工具快几十甚至几百倍。

Ruff 正在被积极开发,并被用于主要的开源项目中,例如

...以及更多

Ruff 由 Astral 提供支持。 阅读发布帖子,或原始的项目公告

用户评价

Sebastián RamírezFastAPI 的创建者

Ruff 非常快,以至于有时我会故意在代码中添加一个错误,只是为了确认它实际上正在运行并检查代码。

Nick Schrock, Elementl 的创始人,GraphQL 的共同创建者

为什么 Ruff 是一个颠覆者?主要是因为它快了近 1000 倍。 真的。 不是笔误。 在我们最大的模块(dagster 本身,25 万行代码)上,pylint 在我的 M1 上的 4 个核心上并行处理大约需要 2.5 分钟。 对我们的整个代码库运行 ruff 需要 0.4 秒。

Bryan Van de VenBokeh 的共同创建者,Conda 的原始作者

在我的机器上,Ruff 比 flake8 快约 150-200 倍,扫描整个仓库需要约 0.2 秒而不是约 20 秒。 这对于本地开发来说是一项巨大的生活质量改进。 它足够快,我将其添加为实际的提交钩子,这太棒了。

Timothy Crosleyisort 的创建者

刚刚将我的第一个项目切换到 Ruff。 到目前为止只有一个缺点:它太快了,以至于我不敢相信它在工作,直到我故意引入了一些错误。

Tim Abbott, Zulip 的首席开发人员

这真是太快了... ruff 太棒了。