Decentralization? We're still early!

Zerobrew:Rust 打造的超快 macOS 包管理器替代方案

  • Zerobrew:Rust 打造的超快 macOS 包管理器替代方案

    發布人 Brave 2026-01-27 05:13

    在 macOS 开发生态中,Homebrew 几乎是装机必备,自 2009 年由 Max Howell 创建以来,它已成为超过百万开发者的标配工具。然而,其基于 Ruby 的底层架构在执行速度(尤其是更新索引时)常被用户诟病。根据 GitHub 社区讨论,即使是执行简单的 brew help 命令(仅打印帮助字符串),也需要约 1 秒的启动时间——这完全归因于 Ruby 运行时的加载开销。

    Zerobrew 应运而生,作为一款实验性的替代工具,它旨在通过底层重构彻底解决速度痛点。该项目由软件工程师 Lucas Gelfond(现任职于知名独立电影公司 A24)开发,他在布朗大学学习计算机科学与英语,此前曾在 Substack 和纽约市规划部门从事工程工作。


    ⚡ 核心亮点

    1. 🚀 极致的执行速度

    根据 Reddit 社区 的开发者测试,Zerobrew 的运行速度比 Homebrew 快 5 到 20 倍具体而言:

    场景性能提升
    冷启动(Cold Start)约 5 倍加速
    热启动(Warm Start)约 20 倍加速

    这种性能提升主要归功于以下技术架构:

    • Rust 语言的高效并发处理能力:Rust 的零成本抽象和无运行时开销特性,使得 Zerobrew 在启动时无需等待解释器加载
    • 流式执行管道(Streaming Execution Pipeline)下载、解压和链接操作并发执行,而非传统的串行处理模式
    • 智能 HTTP 缓存并行下载时自动去重正在进行的请求,并在多个 CDN 连接之间竞速选择最快源

    2. 🦀 Rust 动力驱动

    Zerobrew 是 "用 Rust 重写一切"(Rewrite It In Rust, RIIR) 浪潮中的佼佼者。这一技术趋势在 2024-2025 年持续升温,据 JetBrains 调研数据,全球已有超过 226 万开发者使用 Rust,其中 70.9 万人将其作为主要开发语言。 通过取消对 Ruby 环境的依赖,Zerobrew 显著降低了运行时的开销。

    为什么 Rust 特别适合构建包管理器?

    特性对包管理器的意义
    内存安全避免缓冲区溢出等安全漏洞(据微软和 Google 统计,超过 70% 的严重漏洞源于内存安全问题
    零成本抽象高级语言特性不带来运行时性能损失
    无垃圾回收无 GC 暂停,执行时间可预测
    强大的并发原语安全地实现并行下载和处理

    3. 💾 内容寻址存储(Content-Addressable Store)

    这是 Zerobrew 最具创新性的设计之一。所有软件包存储在一个基于 SHA256 哈希值的内容寻址仓库中:

    /opt/zerobrew/store/{sha256}/

    这种设计带来的优势包括:

    • 即时重装:如果存储条目已存在,重新安装几乎瞬间完成(无需重复下载)
    • 天然去重:相同内容的包只存储一份,节省磁盘空间
    • 版本隔离:不同版本的同一软件包可安全共存

    4. 🍎 APFS Clonefile 技术集成

    Zerobrew 充分利用了 macOS 的 APFS(Apple File System)原生能力,使用 clonefile 系统调用从存储区物化文件。

    什么是 APFS Copy-on-Write?

    根据 Apple 开发者文档技术分析,APFS 的写时复制机制允许:

    逻辑上复制一个文件——它看起来和表现得像一个独立的文件——但不会立即在磁盘上复制文件内容,而是与原文件共享数据块。只有当任一副本被修改时,系统才会动态分配新存储空间用于存储修改的部分。

    实际效果:

    • 📁 复制操作几乎瞬时完成(仅需少量元数据写入)
    • 💿 零磁盘开销:副本不占用额外空间(仅元数据开销)
    • ⚡ 30GB 文件可在硬盘上瞬间"复制"

    5. 🔄 命令无缝兼容

    作为一种 "无痛替换" 方案,Zerobrew 尽量维持了与原版 brew 命令的一致性,减少了用户的迁移成本。由于 Zerobrew 直接从 Homebrew 的 CDN 拉取软件包,你可以直接用 zb 替换 brew 命令:

    # Homebrew 原命令 brew install node
    
    # Zerobrew 等效命令 zb install node

    🤔 为什么选择它?

    如果你是一位追求极致效率的开发者,或是不满于 brew update 漫长的等待过程,Zerobrew 提供了一个更现代、更轻量化的选择。

    Homebrew 的典型性能痛点

    根据 GitHub 上的多个 Issue 讨论,用户普遍反映以下问题:

    问题具体表现
    brew update 缓慢停顿 2-3 分钟才开始实际更新
    brew --prefix 延迟.zshrc 中使用会拖慢每次终端启动
    外部 Tap 处理慢Ruby 进程 CPU 占用 100%,耗时 5-10 分钟
    即使简单命令也慢brew help 需要约 1 秒(Ruby 启动开销)

    社区常见的权宜之计包括:

    • 设置 HOMEBREW_NO_AUTO_UPDATE=1 禁用自动更新
    • 使用 ${HOMEBREW_PREFIX}/opt/<formula> 替代 brew --prefix
    • 虽然 Homebrew 5.0.0 引入了并行下载功能,但核心的 Ruby 启动开销问题依然存在

    ⚠️ 注意事项与局限性

    虽然 Zerobrew 目前仍被开发者 Lucas Gelfond 定义为 实验性项目,但其展现出的性能潜力已吸引了大量极客关注。在使用前,你需要了解以下重要信息:

    🔧 技术挑战

    根据 Homebrew 维护者的反馈,有一些值得注意的技术挑战:

    "Homebrew 的许多 bottles(预编译二进制包)是可重定位的,但有相当一部分不是。之前已有多次尝试构建更快的 Homebrew,它们通常能完成到 95% 的进度,然后就会遇到各种恼人的边缘情况——这些正是 Homebrew 多年来积累'伤疤组织'的地方。"

    具体而言:

    挑战说明
    不可重定位的包部分软件包硬编码了安装路径
    边缘情况处理Homebrew 15 年的积累中包含大量特例处理
    生态兼容性需要与现有 Homebrew 基础设施完美对接

    📊 项目成熟度

    截至目前(2026 年 1 月),Zerobrew GitHub 仓库 状态:

    • ⭐ 644 Stars
    • 🍴 6 Forks
    • 🏷️ 定位:实验性项目
    • ✅ 核心 Homebrew 软件包大多可用

    🤖 开发背景趣闻

    值得一提的是,Lucas Gelfond 在开发 Zerobrew 时大量使用了 Claude Opus 4.5 来编写代码。他表示:

    "我非常相信语言模型在编程方面的能力,尤其是当它们被给予精确的规范并与人类协作时。"

    这也反映了 2025-2026 年 AI 辅助编程的新趋势——开发者与 AI 协作完成复杂系统工程项目。


    🛠️ 如何开始?

    安装方式

    你可以通过以下命令快速安装 Zerobrew:

    curl -sSL https://raw.githubusercontent.com/lucasgelfond/zerobrew/main/install.sh | bash

    安装完成后,即可使用 zb 命令替代 brew

    基本使用示例

    # 安装软件包 zb install wget
    
    # 更新软件包索引 zb update
    
    # 升级所有已安装的软件包 zb upgrade
    
    # 搜索软件包 zb search python

    📎 更多详情:访问 Zerobrew GitHub 仓库 查看最新的编译和安装说明。


    🌐 同类项目对比

    Zerobrew 并非唯一的 Rust 重写 Homebrew 的尝试。以下是目前活跃的同类项目:

    项目开发者特点状态
    ZerobrewLucas Gelfond内容寻址存储、APFS clonefile、Homebrew CDN 兼容实验性
    sps (Sapphire)alexykn支持 Formulae 和 Casks、计划推出自定义包系统 v2实验性,仅 ARM

    Sapphire (sps) 项目的未来规划尤其值得关注:

    开发者计划在 v2 版本中实现:

    • 🔄 原子化安装/更新
    • 📸 自动快照
    • ⏪ 完整的包回滚功能
    • 🔒 自动 CVE 安全检查

    💡 要点总结

    要点核心内容
    性能提升冷启动 5x,热启动 20x 速度提升
    技术栈Rust 语言,消除 Ruby 运行时开销
    创新设计内容寻址存储 + APFS clonefile + 流式并行执行
    兼容性直接使用 Homebrew CDN,命令语法兼容
    成熟度实验性项目,核心功能可用,边缘情况待完善
    适用人群追求效率的高级开发者、macOS 工具链探索者

    Brave 回复 4 days, 9 hours ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在