astral-sh/ruff
开发工具用 Rust 编写的快速 Python 代码检查与格式化工具,内置 900 多条规则并支持配置文件。
项目介绍
Ruff 是用 Rust 实现的 Python linter 和代码格式化工具,目标是在一个统一接口下提供静态检查和格式化。它重新实现了 Flake8 插件、isort、Black、pydocstyle、pyupgrade、autoflake 等工具的规则,并说明与 Flake8、isort、Black 的兼容程度 (3)(19)(20)(21)。项目内置 900 多条规则,支持 pyproject.toml 配置、缓存和自动修复,并声明兼容到 Python 3.15 (3)。
Ruff 由 Astral 开发,同一团队还维护 uv 和 ty,项目被 Apache Airflow、FastAPI、Transformers、Pandas、SciPy 等大型开源项目使用 (3)(39)(40)(41)。它适合维护 Python 项目、CI 流程或编辑器工作流的开发者,用一套工具完成代码检查和格式化。
快速使用
Ruff 发布在 PyPI 上。最省事的方式是用 uvx 直接运行,或者用 uv、pip、pipx 安装 (3):
uvx ruff@0.17.4 check # 检查当前目录下所有文件
uvx ruff@0.17.4 format # 格式化当前目录下所有文件
也可以先安装:
uv tool install ruff@latest # 或:pip install ruff、pipx install ruff
macOS/Linux 和 Windows 还提供独立安装脚本 (3)。安装后对目录、.py 通配符或单个文件运行:
ruff check path/to/code/
ruff format path/to/code/*.py
首次运行会报告检查结果;加 --fix 可以应用安全修复。格式化会直接改写文件。Ruff 还可以作为 pre-commit hook、GitHub Action 或 VS Code 等编辑器插件使用 (3)(24)。
配置方式
Ruff 从 pyproject.toml、ruff.toml 或 .ruff.toml 读取配置。写在 pyproject.toml 里时,段名要加 tool.ruff 前缀,例如 [lint] 要写成 [tool.ruff.lint]。默认配置按 Python 3.11、行宽 88 和 Black 风格处理;可以用 --select/--ignore 在命令行或配置文件里启用、禁用规则,设置 preview = true 或加 --preview 可开启不稳定功能 (3)。完整配置项和默认规则集见配置文档。
使用约束
Ruff 可通过 PyPI 和独立安装脚本安装,README 还列出 Homebrew、Conda 等包管理器以及 VS Code 等编辑器集成 (3)。项目采用 MIT 许可证 (9)。Ruff 重新实现其他工具的规则,而不是加载它们的插件,因此 Flake8 插件行为和规则代码的划分不一定一一对应;FAQ 中有与 Flake8、isort、Black 的对比说明 (19)(20)(21)。规则集和预览模式可能随版本变化,README 的安装示例固定了具体版本。
HotRepo 点评
Ruff 进入过 HotRepo 的 GitHub 全语言日榜,记录到的最好名次是第 18 名;2026-11-06 的日榜快照显示当天新增 107 个 Star,总 Star 数为 50,486。项目在 Hacker News 上有一条 2025 年 1 月的长讨论,获得 200 分和 150 条评论,评论者围绕整合 Python 工具链、以及用 Rust 重写既有 linter 的取舍展开争论 (1)。这些讨论只是用户观点,不代表维护者说法,也不是实测结果。安装包和文档是实际入口;README 中的速度描述属于项目自己的基准表述,并非独立测量。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。