
文章目录Ruff用 Rust 重写的 Python 代码检查和格式化工具快了几十倍Ruff用 Rust 重写的 Python 代码检查和格式化工具快了几十倍Ruff 是一个用 Rust 编写的 Python 代码检查linter和格式化formatter工具目前在 GitHub 上已经拿到了近 48k 的 Star。Python 社区长期依赖 Flake8、Black、isort 等工具来检查代码风格和格式化代码每个工具各管一块配置零散速度也一般。Ruff 把这些功能整合到了一个工具里用 Rust 重写了所有规则引擎速度比传统工具快 10 到 100 倍。在 CPython 代码库上的基准测试中Ruff 从头到尾跑完一遍的时间极短而同等条件下 Flake8 需要 20 秒以上。FastAPI 作者 Sebastián Ramírez 说过Ruff 快到他偶尔会故意写个 bug 来确认它确实跑过了。Dagster 的联合创始人 Nick Schrock 测过在他们 25 万行代码的仓库上pylint 需要 2 分半Ruff 只用了 0.4 秒。核心能力Ruff 内置了超过 900 条 lint 规则原生重新实现了 Flake8、isort、pyupgrade、autoflake 等数十个插件的功能。同时它还能当格式化工具使用行为与 Black 兼容。也就是说原来需要装五六个工具配五套配置现在一个 Ruff 就够了。它支持自动修复比如删掉未使用的 import 语句、升级过时的 Python 语法。还内置了缓存机制只分析改动过的文件进一步节省时间。支持的项目Ruff 已经被大量主流开源项目采用FastAPI、Pandas、SciPy、PyTorch、Hugging Face Transformers、Apache Airflow、Home Assistant、LangChain、Streamlit、pytest 等。从 Web 框架到机器学习库从数据工具到自动化平台覆盖面很广。安装方式Ruff 支持多种安装方式。最简单的是用 uvuv tool install rufflatest也可以用 pippip install ruff如果不想全局安装可以直接用 uvx 临时运行不需要预先安装uvx ruff check uvx ruff format从 0.5.0 版本开始Ruff 还提供了独立安装脚本macOS 和 Linux 上一条命令搞定curl -LsSf https://astral.sh/ruff/install.sh | sh使用方法Ruff 的命令行接口很直白。检查代码ruff check path/to/code/格式化代码ruff format path/to/code/也可以配合 pre-commit 使用在每次提交前自动检查和格式化。还能作为 VS Code 插件或 GitHub Action 接入 CI 流程。配置方式Ruff 通过 pyproject.toml 或 ruff.toml 进行配置。不写配置文件也能直接用默认启用 Flake8 的 F 规则和部分 E 规则。如果需要自定义配置项包括目标 Python 版本、行长度、启用的规则集等结构清晰。Ruff 还支持层级配置和级联配置在monorepo 中可以对不同子目录设置不同规则。Ruff 由 Astral 团队开发维护这个团队也是 uvPython 包管理器和 tyPython 类型检查器的作者。。Ruff 由 Astral 团队开发维护这个团队也是 uvPython 包管理器和 tyPython 类型检查器的作者。