Rust 编写极快 Python linter,Github 上已经27.7k start

19 阅读2分钟

大家好,我是渔夫。

今天分享一个采用 Rust 开发,极快的 Python linter,目前也比较受欢迎!

Ruff 的亮点

  • 速度惊人,这个速度比现有的代码检查工具如 Flake8 和格式化工具如 Black 快 10 到 100 倍。这个可以让你可以在极短的时间内得到代码质量的反馈,极大地提高了开发效率。

  • Ruff 与 Python 3.12 兼容,可以轻松在最新的 Python 环境中运行,确保开发者可以使用最新的语言特性。

  • Ruff 内置了缓存机制,这样它只会重新分析那些发生变化的文件,从而进一步提高了性能。

  • Ruff 拥有超过 800 条内置规则,这些规则几乎涵盖了代码质量的各个方面,包括但不限于错误检测、代码风格、最佳实践等非常棒!

  • 编辑器集成,Ruff 提供了与 VS Code 编辑器集成。

  • Ruff 得到了 Astral 支持,并且社区开发非常的活跃,已经被广泛应用于这些开源项目,如Apache Airflow、FastAPI 、Hugging Face 、Pandas 及 SciPy等。

Ruff 好评如潮!

第一位来自 FastAPI 的创建者 Sebastián Ramírez:

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

Nick Schrock , Elementl创始人, GraphQL联合创始人: 为什么 Ruff 会改变游戏规则?主要是因为它的速度几乎快了 1000 倍。确实是这样的。不是笔误。在我们最大的模块(dagster 本身,250k LOC)上,pylint 大约需要 2.5 分钟,在我的 M1 上的 4 个核心上并行运行。对我们的整个代码库运行 ruff 需要 0.4 秒。

Bryan Van de Ven , Bokeh的联合创始人, Conda的原作者: 在我的计算机上,Ruff 比 flake8 快约 150-200 倍,扫描整个存储库只需约 0.2 秒,而不是约 20 秒。这对于本地开发人员来说是一个巨大的生活质量提升。它足够快,我将其添加为实际的提交钩子,这太棒了。

isort的创建者Timothy Crosley: 刚刚将我的第一个项目切换到 Ruff。目前只有一个缺点:它的速度太快了,我简直不敢相信它能正常工作,直到我故意引入了一些错误。

最后一位来自 Zulip首席开发人员 Tim Abbott 表示说: 这实在是快得可笑……ruff 太神奇了。

参考资料:

我是渔夫,现在在国内某某云程序员,业余独立开发者,探索副业,生活、技术、非科班转码经验等相关文章,欢迎关注,和渔夫一起成长。