# Zerobrew、Homebrewパッケージを高速に導入するクライアントを提案

Zerobrewという実験段階のパッケージ管理ツールが、macOSとLinuxでHomebrewのエコシステムに属するパッケージを、より速くインストールする方法を提案している。このプロジェクトは、Homebrewのパッケージカタログやビルド基盤を置き換えるものではない。Homebrewが作成したbottleを利用し、そのファイルをダウンロードした後に、異なるインストールの仕組みを適用する。

Zerobrewのリポジトリでは、Pythonのパッケージマネージャーuvに着想を得た方式をHomebrewのパッケージに持ち込むソフトウェアだと説明している。設計の中心となるのはコンテンツアドレス方式のストアで、インストールするソフトウェアをそのストアからリンクする。開発者によると、再配置の処理はZerobrewのプロセス内で行われる。これは、Homebrewがformulaの評価にRubyを使い、パスの書き換えとバイナリへの署名を順次処理する方式と対比されている。

この違いは重要だ。プロジェクトが主張する高速化は、クライアント側のインストール処理に関するものであり、コンパイルの高速化や独自に保守するパッケージの話ではない。Zerobrewは、自らがインストールするすべてのbottleを作成、テスト、公開しているのはHomebrewのビルドファームだと明記し、その貢献を認めている。Zerobrew自体はパッケージをコンパイルせず、独自のformulaも保守しない。実態としては、Homebrewの既存の成果物を利用する、性能重視のクライアントと捉えるのが適切だ。

リポジトリでは最大100倍の高速化をうたっているが、この数字には重要な条件が付く。公開されたベンチマークは10月8日に測定され、開発版とされるZerobrew 0.3.5とHomebrew 7.0.8を比較したものだ。テストにはM3 Proプロセッサー、18GBのメモリーを搭載したMacBook Proと、約318メガビット毎秒の回線を使用し、Homebrewは空の状態から開始した。したがって、この結果はプロジェクト自身による再現可能な測定として受け止めるべきであり、さまざまなマシンやネットワークを対象とする独立した性能評価ではない。

開発者は、比較を繰り返せるようにするためのベンチマーク用コマンドとログを公開している。完全なベンチマークではZerobrewをリセットし、テスト中にHomebrew経由でインストールしたソフトウェアを削除して、結果をMarkdownの表に記録する。より小規模な継続的インテグレーションのチェックでは、両方のクライアントを使って所定のパッケージ群をインストールし、生成されたインストール先の内容をバイト単位で比較する。別の計時ジョブではコールド状態とウォーム状態のインストールをテストし、毎晩の実行はZerobrewが明示された性能の基準を下回ると失敗する設定になっている。

Zerobrewのドキュメントは、このソフトウェアを本番環境でそのまま置き換えられる代替品として扱わないようにも注意を促している。プロジェクトは依然として実験段階にあり、Homebrewと併用することを推奨している。特に、影響を理解していない限りHomebrewを削除しないよう助言している。インストーラーはシェルの設定を変更するため、利用者はツールを使う前にターミナルを再起動するか、インストーラーが案内するコマンドをsourceで読み込む必要がある。

プロジェクトは、以前の配布経路からの移行中でもある。従来のtapはもはや更新されておらず、既存の利用者には現在のリリース経路へ切り替えるよう案内されている。この点も、リポジトリが示す開発段階であることへの注意を裏付ける。Zerobrewは興味深い設計上の実験と文書化されたベンチマークを提供するが、大きく掲げる速度の主張は特定の構成に依存しており、それぞれの利用者の実際の作業負荷で確かめる必要がある。