TLDR: 我用 Rust 重写了 pre-commit: https://github.com/j178/prek
一些背景故事:
去年开始给 uv 提交了一些 PR ,掌握了一些 Rust 基础,就开始想着自己从头写一个项目练手。没有什么好的 idea ,就准备从重写一些常用的软件开始,正好对 pre-commit 比较熟,就开始从头写一个 Rust 版本的 pre-commit 。
慢慢地写完了最基础的功能,小范围宣传了一下,然后原作者找上了门。本来以为是善意的合作邀请,结果人家来就是为了喷我的……(后来我才知道这个作者在开源圈子的名声有多臭)。不过我确实忘了添加 pre-commit 的 LICENSE ,人家喷我我也认。不过我也慢慢没了热情,把项目搁置了。
今年没有那么忙了,周末就在家打游戏,女朋友跟我说:”好久没见你在家写代码了“,于是我就又把这个项目捡起来了。高强度开发了两周,补充了很多功能,基本上可以 drop-in 替换原来的 pre-commit 了。
这期间 PDM^1,basedpyright^2 开始在 contribution guide 中推荐使用我开发的 prek
作为 pre-commit
的替代。
然后就是 airflow 正在准备迁移^3。与 pdm 和 basedpyright 不一样的是,airflow 高度依赖 pre-commit ,仓库里有 160+ 的 hook ,开发和 CI 流程都完全基于 pre-commit 。
今天,收到了 airflow 的主要 maintainer 给我写的一个回复: https://github.com/j178/prek/issues/73#issuecomment-3178076699 ,给我一顿夸,夸得我都不好意思了。
以上,分享给大家一个小故事,顺便推广一下我的项目。
![]() |
1
putaozhenhaochi 23 天前 via Android
大佬
|
2
cryptovae 23 天前 ![]() 这一顿夸再加上一拉一踩确实有点让人不好意思了,都像是你请的水军了哈哈哈,rust 重写万物果然不是盖的
|
3
jukanntenn 23 天前 ![]() 整个 Python 工具链估计后续都要被 Rust 重写,就如前端工具链一样。Greate Job !!!
|
![]() |
4
noqwerty 23 天前 via iPhone ![]() 已迁移!前段时间搜 pre-commit in rust 还没搜到这个项目,今天刚好就刷到了👍
|
![]() |
5
billzhuang 23 天前
棒棒的。
|
6
sdzg 23 天前
先顶一下。这周找时间试试
|
7
dryadent 22 天前
特别优秀了,作为 airlflow 的重度使用者,前来瞻仰
|
8
lizhien 21 天前
pre-commit 速度慢的蜗牛一样,早就受不了了
|
![]() |
9
exhades 20 天前 ![]() 已从 pre-commit 切换到 prek , 贼好用,感谢楼主,prek 又快又高效
吐槽一句,pre-commit 的维护者在整个开源社区都很 sb ,十分的看人下菜,提 issue 它会直接回一句 “I don't care.” 然后直接关了,贼抽象 |