zerobrew 就是一个 用 Rust 写的、比 Homebrew 超快的新式软件包管理器。
简单来说:
* 它的目的是让你在 Mac 或 Linux 上安装软件就像用 Homebrew 一样方便。
* 但它的速度比 Homebrew 快好多倍:冷启动快 5 倍,热启动快 20 倍左右(也就是说第一次下载很快,以后再装同样的软件更快)。
* 它完全用 Rust 语言写的(Rust 就是现在很火、速度快、安全性高的语言)。([GitHub][1])
换句话说:
Homebrew 是现在很多人用来装命令行工具的软件安装器,zerobrew 就像是它的 更快、更现代的替代版。
在 Mac 上装个软件,结果等得都快睡着了?
比如想装个 jq、wget 或者 git,敲一行 brew install,然后就眼巴巴看着终端一行行刷日志,心里默念“快点快点”,结果它慢悠悠地下载、解压、链接,像在泡茶一样讲究。
现在,有人看不下去了,直接撸起袖子用 Rust 语言重写了一套更快更猛的包管理器,名字叫 zerobrew,简称 zb。
这玩意儿是把整个安装流程从底层逻辑上重新设计了一遍,目标只有一个:让你装软件的速度快到怀疑人生。
冷启动(第一次装)能快 5 倍,热启动(重复装)能快 20 倍!ffmpeg、sqlite、tesseract 这些大块头软件,在 zb 手里就像被施了加速魔法,几秒搞定。
这不就是另一个 Homebrew 吗?错!它更像是 Homebrew 的“超频版”——命令几乎一模一样,但背后全是黑科技,连 Homebrew 自己的 CDN 都直接拿来用,所以你不用换源、不用学新语法,只要把 brew 换成 zb,世界就变快了。
它怎么让安装变快?
zerobrew 有几个厉害的地方:
1. 内容寻址存储(content-addressable store)
软件包不是按名字随便放目录,而是按文件内容的哈希值存起来(简单理解就是“按内容打标签存档”)。
就是每个软件包不是按名字乱放,而是根据它的内容算出一个独一无二的“指纹”(SHA256 哈希值),然后按这个指纹存档。
这样重新安装同一个软件时,不用重复下载和解压,速度嗖嗖的。
这就意味着,只要你装过一次 jq,下次再装,系统一看:“哎,这个指纹我有!”直接从本地调出来,连网都不用上,瞬间完成。这招在程序员圈里叫“内容寻址”,听起来高大上,其实就像你给每本漫画书贴个二维码,扫一下就知道是不是同一本,不用翻内容。
2. 并行下载和安装
它可以同时跑好几个下载/安装任务,并且把下载、解压、链接这些过程都重叠起来做,不用一件一件等。
zerobrew 干活是“多线程狂魔”。它不会傻乎乎地先下载完再解压再链接,而是三件事同时干:一边下载,一边解压刚下好的部分,一边把解压出来的文件链接到系统路径。这就像你煮面的同时切菜、炒酱,三口锅一起开火,效率直接拉满。
它还用 APFS 文件系统的“克隆文件”功能,复制文件时根本不占新空间,只是建个快捷方式,零磁盘开销。
3. 用的是 Homebrew 的官方 CDN(内容分发网络)
所以它不是自己搞一套软件源,而是直接 “偷用” Brew 的资源,这样你可以直接把原来用 brew install foo 的命令换成 zb install foo 来用。
也就是说,Homebrew 有的软件,它基本都能装,你不用担心生态问题。
你原来用 brew install git,现在改成 zb install git,其他一切照旧,但速度天差地别。
总之,它靠这些设计让整个安装流程 比 Homebrew 流畅得多。
安装和用法(就是用起来)
在 README 里他们给出了最简单的用法:
curl -sSL https://raw.githubusercontent.com/lucasgelfond/zerobrew/main/install.sh | bash
然后安装完毕后:
zb install jq #安装 jq
zb install wget git #安装 wget 和 git
zb uninstall jq #卸载 jq
zb reset #清空所有安装
zb gc #回收没用的存储
听起来跟 Homebrew 非常像,不过命令名字是 zb。
它的目录结构也高度模仿 Homebrew:
/opt/zerobrew/store/ 存原始包,/opt/zerobrew/prefix/Cellar/ 放实际安装的软件,bin 和 opt 目录里全是软链接,保证系统能找到命令。
迁移成本几乎为零。你今天装 zb,明天就能用它干活,毫无学习负担。
而且因为它用 Rust 写的,内存安全、并发强、编译快,天生就适合干这种高速 I/O 的活。
Rust 现在可是系统编程的顶流语言,连 Linux 内核都开始接纳它了,用它重写包管理器,简直是天作之合。
项目状态是什么样的?
现在这个仓库:
* ⭐ 只有 15 个星星(很少),还没有分支、没有发行版,也没有发布包。
* 别人 fork 的也几乎没有。
* 也就是说它还是 实验性/早期阶段,可能某些软件装不了或者不够稳定。
它已经能处理 Homebrew 的大部分核心软件包,benchmark 脚本跑得明明白白,数据摆在那儿:整体 top 100 软件安装时间从 452 秒降到 226 秒(冷)和 59 秒(热)。tesseract 这种巨无霸 OCR 引擎,Homebrew 要近 19 秒,zb 热装只要 643 毫秒——不到一秒!这说明底层架构已经跑通,性能优势真实存在。
当然,既然是实验性项目,肯定有些边缘公式还不支持,或者偶尔抽风。
但作者很坦诚,直接在 README 里写“Experimental. works for most core homebrew packages. Some formulas may need more work - please submit issues / PRs!”
这种态度反而让人放心:不吹牛,只做事。而且因为完全开源,谁都可以提 issue 或 PR 来改进。
总结一句话
zerobrew 是一个用 Rust 重新做的、速度比 Homebrew 快好几倍的软件安装器,可以让你像用 Homebrew 一样装软件,但更快更新潮,只是现在还在早期阶段。