Homebrewを最大6.6倍高速化? 新しいパッケージマネージャー「Zerobrew」とは

Wait 5 sec.

macOSやLinuxで人気のパッケージマネージャーといえばHomebrewですが、そのインストール処理を大幅に高速化することを目指して開発されているのが本日紹介する「Zerobrew」です。GitHub上では「最大6.6倍高速なHomebrew代替」と紹介されており、Homebrewのエコシステムを活用しながら独自のアーキテクチャで高速化を実現しています。Homebrewを置き換えるのではなく、活用するZerobrewは独自にパッケージをビルドしたり管理したりするわけではありません。実際にはHomebrewが提供するFormulaやBottle、パッケージメタデータなどを利用しています。Zerobrewの特徴は、パッケージの入手後の処理を効率化する点にあります。プロジェクトの説明として「Homebrewの高性能クライアント」とあることからもわかる通り、Homebrewの豊富なパッケージ資産をそのまま活用しながら、インストール方法を最適化して速度向上を実現しているのです。驚異的なインストール速度を実現掲載されているベンチマークでは、100パッケージの一括インストール時にHomebrewが776秒だったのに対し、Zerobrewは117秒を記録しています。また、キャッシュ済みデータを利用する「Warm」状態では、638秒に対してわずか9.3秒という結果が示されています。PackageHomebrew (cold)ZB (cold)Cold speedupHomebrew (warm)ZB (warm)Warm speedupOverall (100 packages)776s117s6.6x638s9.3s68xpython@3.1416.99s1.97s8.6x14.37s207ms69.4xnode29.31s3.16s9.3x28.24s232ms121.7xtesseract34.63s2.16s16.0x32.37s476ms68.0xopenjdk32.09s5.17s6.2x26.86s448ms60.0xllvm18.22s9.14s2.0x9.66s183ms52.8xNode.jsやPython、OpenJDK、Tesseractなどの主要パッケージでも大幅な高速化が確認されており、とくに再インストール時の性能向上が目立ちます。プロジェクトによれば、100種類のパッケージを対象にしたテストでは、中央値でコールドインストールが5.3倍、ウォームインストールが56倍高速だったとしています。Zerobrewの高速処理の日持つは、ダウンロード後の処理方法にあります。HomebrewではRubyによるFormula評価や展開処理、パス書き換え、バイナリ再署名などを実行します。一方のZerobrewは、リロケーション処理をプロセス内部で行い、コンテンツアドレスストレージを利用して効率的にリンクします。これにより、一度取得したデータを最大限再利用できる仕組みになっています。また、APFSのclonefile機能やコンテンツアドレス方式のストレージを活用し、不要なコピー処理や重複データを削減している点も特徴です。Zerobrewのインストール方法Zerobrewは公式インストーラー、またはHomebrew経由で導入できます。READMEでは、まず公式インストーラーの利用が案内されていますcurl -fsSL https://zerobrew.rs/install | bashインストール完了後は、ターミナルを再起動するか、表示されるsourceコマンドを実行して環境を反映します。すでにHomebrewを利用している場合は、以下のコマンドでもインストールできます。brew install zerobrewhq/zerobrew/zerobrewZerobrewのコマンドはzbです。Homebrewのbrewコマンドに近い感覚で利用できるため、既存のHomebrewユーザーでも戸惑うことは少ないでしょうたとえば単一パッケージをインストールする場合は次のように実行します。zb install jq以下のような使用例が紹介されています。zb install jq # install one packagezb install wget git # install multiplezb bundle # install from Brewfilezb bundle install -f myfile # install from custom filezb bundle dump # export installed packages to Brewfilezb bundle dump -f out --force # dump to custom file (overwrite)zb uninstall jq # uninstall one packagezb outdated # list packages with newer versionszb upgrade # upgrade all outdated packageszb upgrade jq wget # upgrade specific packageszb reset # uninstall everythingzb gc # garbage collect unused store entrieszbx jq --version なお、Zerobrewは現在では実験的な位置付けです。開発者自身は日常利用しているものの、Homebrewを完全に置き換えるよりも、まずは併用することが推奨されています。Homebrewを削除して全面的に移行することは勧められていません。新しい技術を試したい開発者や、パッケージインストール時間を短縮したいユーザーにとっては魅力的な選択肢ですが、本番環境では慎重な検証が必要でしょう。まとめZerobrewは、Homebrewの膨大な資産を活用しながら、インストール処理を徹底的に最適化することで高速化を実現する新しいプロジェクトです。特にキャッシュが活用できる環境では圧倒的な速度向上が期待でき、今後の発展次第ではmacOS・Linuxユーザーにとって注目すべき選択肢となりそうです。現時点では実験的なソフトウェアですが、「Homebrewをもっと速くしたい」という課題に対する非常に興味深いアプローチと言えるでしょう。Hacker Newsでも、Zerobrewに関する議論は行われており、ベンチマーク結果に驚く声がある一方で、「なぜHomebrew本体に取り込まないのか」といった疑問や、ベンチマークの見せ方に対する指摘もみられました。