TLDR: prek 是用 Rust 重写的 pre-commit 工具,支持自动管理多种语言编写的 hook ,欢迎大家 star: https://github.com/j178/prek
距离第一次发帖 airflow 正在迁移到我写的 pre-commit 替代品 已经过去 4 个月了,这段时间 prek 经历了很多不可思议的「第一次」,今天想和大家更新一下项目的最新进展。
功能完善
这几个月主要专注于功能的完善和性能优化:
核心功能
- Mono repo 支持:完整支持了 monorepo 模式,每个子项目都可以有自己独立的
.pre-commit-config.yaml配置文件,再也不用在根目录维护一个庞大的配置了 - 多语言生态扩展:新增了对 Lua 、Ruby 、Rust 的完整支持,Deno 和 Dart 的支持也在开发中
- 内置 hooks:支持了
repo: builtin内置 hook ,开箱即用更方便
性能与安全
- 供应链安全:
prek auto-update --cooldown-days参数可以设置更新冷却期,避免依赖包被恶意篡改后立即自动更新带来的安全风险 - 并行执行:支持 hook 级别的 priority 设置和并行执行,可以极大提升多 hook 场景下的执行速度
社区认可
让我最有成就感的是项目得到了社区的广泛认可:
重量级用户
Apache Airflow 深度集成了 prek ,还在官方系列文章里专门写了一篇介绍:Modern Python Monorepo for Apache Airflow - Part 3
大佬推荐
- Python 核心开发者 Hugo van Kemenade 的博客推荐:Ready, prek, go!
- FastAPI 作者 Sebastián Ramírez 在 X 上推荐: https://x.com/tiangolo/status/2001998265571557884
- ripgrep 作者 BurntSushi 给项目点了 star
- Rust Cargo 团队成员 epage 主动提交了多个 PR
社区采用
已经有不少知名项目迁移或正在迁移中:
- Apache Airflow
- PDM
- FastAPI
- basedpyright
- OpenLineage
- Authlib
- PaperQA2
- requests-cache
- kreuzberg
- attrs
- FastMCP
- iceberg-python
- msgspec
- humanize
- nf-core
- 还有更多...
数据表现
- GitHub Stars 即将突破 3000
- 月下载量:1400 万
- 总下载量:4200 万
- PyPI 全站排名:第 889 位
感想
开源真的很有意思,你永远不知道下一个用户会是谁。那些曾经仰望的大佬,也会在你的项目里出现!
如果你还在用 Python 版本的 pre-commit ,不妨试试 prek ,欢迎建议和反馈!
