zerobrew:为 macOS 和 Linux 带来 uv 风格的包管理体验

zerobrew 是一款面向 macOS 和 Linux 的新型包管理工具,旨在将类似 Python 包管理器 uv 的高效架构引入 Homebrew 生态。通过优化底层安装机制,zerobrew 在保持与 Homebrew 高度兼容的同时,显著提升了软件包的安装与更新速度。

核心性能表现

根据 2026 年 10 月 8 日在 macOS 26.6.2 (MacBook Pro M3 Pro, 18GB RAM) 环境下进行的基准测试,zerobrew 0.3.5(开发版)相比 Homebrew 7.0.8 展现出显著的性能优势:

  • 总体加速:在安装 100 个常用软件包的测试中,zerobrew 的冷启动(无缓存)安装速度比 Homebrew 快 6.6 倍(117s vs 776s);热启动(有缓存)速度更是快了 68 倍(9.3s vs 638s)。
  • 极端案例:部分软件包在热启动下的加速比超过 100 倍,例如 ca-certificates 加速达 252 倍,node 加速达 121.7 倍。
  • 网络影响:在低速网络(约 69 Mbit/s)环境下,冷启动加速比降至 3.3 倍,表明冷启动性能受限于下载带宽;而热启动加速比仍保持在 69 倍,凸显其在本地处理上的效率。

测试定义:冷启动指卸载所有包并清空下载缓存;热启动指卸载包但保留下载缓存。

技术原理:站在 Homebrew 的肩膀上

zerobrew 并非独立的包构建系统,而是 Homebrew 生态的一个高性能客户端。其核心差异在于安装后的处理流程:

  • Homebrew:下载 Bottle 后,需运行 Ruby 评估 Formula,解压文件,使用 install_name_tool 重写路径,并逐个对二进制文件重新签名。
  • zerobrew:采用进程内重定位技术,结合基于内容寻址的存储库和 APFS clonefiles实现零开销复制。这意味着下载只需进行一次,后续安装几乎无额外开销。

项目方强调,zerobrew 完全依赖 Homebrew 的构建农场提供的预编译 Bottle 和 Formula 定义,不进行任何自行编译或维护 Formula 的工作。其速度提升源于工件安装方式的优化,而非内容本身的改变。

快速上手

安装 zerobrew

方式一:独立脚本安装

curl -fsSL https://zerobrew.rs/install | bash

方式二:通过 Homebrew 安装

brew install zerobrewhq/zerobrew/zerobrew

常用命令

  • zb install <pkg>:安装单个或多个软件包
  • zb bundle:从 Brewfile 安装依赖
  • zb upgrade:升级所有或指定软件包
  • zb gc:垃圾回收,清理未使用的存储条目
  • zbx <cmd>:在不链接的情况下运行命令

项目状态与建议

目前 zerobrew 仍处于实验阶段。开发者建议用户将其与 Homebrew 并行运行,而非直接替换。在不明确潜在后果的情况下,不建议清除现有 Homebrew 环境并完全迁移至 zerobrew。

项目采用 Apache 2.0 或 MIT 双重许可。如遇兼容性问题,用户可通过 GitHub 提交 Issue 或 PR。CI 流程中包含严格的回归测试,若新版本在特定场景下性能下降超过阈值(冷启动慢于 Homebrew 1.5 倍或热启动慢于 3 倍),构建将自动失败。