Skip to content
sabarish-vmPublic

About

A 5-20x faster experimental Homebrew alternative

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

zerobrew

English · 中文

Lint Test Release Discord License: MIT License: Apache 2.0

zerobrew demo

zerobrew brings uv-style architecture to Homebrew packages on macOS and Linux.

Install

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

The installer updates your shell config. After it finishes, restart your terminal or run the source command it prints.

Or via Homebrew:

brew install cachebag/zerobrew/zerobrew

Update zerobrew

If you used the standalone installer, rerun it:

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

If you installed with Homebrew:

brew update && brew upgrade zerobrew

If you installed from the old lucasgelfond/zerobrew tap, it's no longer updated. Switch to the new one:

brew uninstall zerobrew
brew untap lucasgelfond/zerobrew
brew install cachebag/zerobrew/zerobrew

Quick start

zb install jq                   # install one package
zb install wget git             # install multiple
zb bundle                       # install from Brewfile
zb bundle install -f myfile     # install from custom file
zb bundle dump                  # export installed packages to Brewfile
zb bundle dump -f out --force   # dump to custom file (overwrite)
zb uninstall jq                 # uninstall one package
zb outdated                     # list packages with newer versions
zb upgrade                      # upgrade all outdated packages
zb upgrade jq wget              # upgrade specific packages
zb reset                        # uninstall everything
zb gc                           # garbage collect unused store entries
zbx jq --version                # run without linking

Performance snapshot

Package Homebrew (cold) ZB (cold) Cold speedup Homebrew (warm) ZB (warm) Warm speedup
Overall (98 packages) 896s 303s 3.0x 778s 175s 4.5x
libsodium 2.87s 1.14s 2.5x 1.88s 334ms 5.6x
tesseract 41.99s 10.56s 4.0x 39.73s 8.26s 4.8x
openjdk 35.03s 10.47s 3.3x 32.72s 7.30s 4.5x
llvm 17.90s 16.65s 1.1x 11.66s 7.41s 1.6x

Measured on 2026-09-30 with zerobrew 0.3.3 and Homebrew 7.0.7 on macOS 26.6.2, MacBook Pro (M3 Pro, 18 GB RAM), ~410 Mbit/s download bandwidth. Homebrew started with nothing installed.

  • Cold: the package and all of its dependencies uninstalled, empty download cache.
  • Warm: the package and all of its dependencies uninstalled, downloads from the cold run still cached.
  • The median package was 2.7x faster cold and 5.7x faster warm.
Full results
Package Homebrew (cold) ZB (cold) Cold speedup Homebrew (warm) ZB (warm) Warm speedup
ca-certificates 9.13s 1.29s 7.07x 8.20s 290ms 28.27x
openssl@3 12.33s 2.72s 4.53x 11.29s 960ms 11.76x
xz 2.88s 1.11s 2.60x 1.87s 313ms 5.99x
icu4c@78 3.55s 2.16s 1.64x 2.17s 882ms 2.46x
python@3.14 19.22s 4.68s 4.10x 17.70s 2.62s 6.76x
awscli 33.36s 9.57s 3.48x 31.47s 6.29s 5.00x
node 33.95s 15.60s 2.18x 32.48s 13.09s 2.48x
harfbuzz 25.89s 7.35s 3.52x 24.40s 5.24s 4.66x
ncurses 3.69s 1.73s 2.14x 2.44s 749ms 3.26x
gh 2.67s 1.68s 1.59x 1.61s 666ms 2.42x
pcre2 3.02s 1.19s 2.54x 1.91s 465ms 4.11x
libpng 2.83s 1.03s 2.74x 1.87s 305ms 6.12x
zstd 4.63s 1.57s 2.95x 3.55s 537ms 6.61x
glib 7.56s 3.69s 2.05x 6.37s 2.04s 3.12x
lz4 2.91s 1.18s 2.47x 1.84s 304ms 6.07x
gettext 5.32s 2.41s 2.21x 3.97s 1.57s 2.52x
libngtcp2 12.49s 2.61s 4.78x 11.30s 1.12s 10.10x
libnghttp3 2.84s 1.12s 2.53x 1.85s 299ms 6.18x
pkgconf 2.92s 1.18s 2.48x 1.85s 314ms 5.90x
libunistring 2.87s 1.07s 2.68x 1.85s 321ms 5.75x
mpdecimal 2.86s 1.13s 2.54x 1.85s 305ms 6.08x
brotli 2.81s 1.09s 2.59x 1.86s 312ms 5.96x
jpeg-turbo 2.96s 1.17s 2.54x 1.90s 313ms 6.08x
xorgproto 2.64s 1.16s 2.28x 1.53s 274ms 5.58x
ffmpeg 22.99s 5.40s 4.26x 21.72s 3.59s 6.05x
cmake 3.27s 2.42s 1.35x 2.00s 1.00s 2.00x
libnghttp2 2.79s 1.02s 2.73x 1.84s 293ms 6.29x
go 5.40s 6.38s 0.85x 3.66s 3.28s 1.11x
uv 2.87s 1.78s 1.61x 1.59s 688ms 2.32x
gmp 2.93s 1.14s 2.58x 1.86s 316ms 5.89x
libtiff 8.91s 2.53s 3.52x 7.79s 1.44s 5.40x
fontconfig 10.72s 3.22s 3.33x 9.49s 1.77s 5.35x
python@3.13 17.24s 4.42s 3.90x 16.10s 2.45s 6.56x
git 7.22s 3.43s 2.10x 6.01s 2.20s 2.74x
little-cms2 9.68s 2.69s 3.60x 8.84s 1.57s 5.62x
dav1d 2.89s 1.03s 2.79x 1.89s 319ms 5.92x
openexr 12.59s 3.08s 4.09x 11.32s 1.91s 5.91x
c-ares 3.02s 1.05s 2.87x 1.92s 329ms 5.83x
tesseract 41.99s 10.56s 3.98x 39.73s 8.26s 4.81x
p11-kit 11.08s 1.38s 8.01x 10.11s 489ms 20.66x
imagemagick 17.70s 5.68s 3.12x 16.59s 4.38s 3.79x
zlib 2.88s 1.13s 2.55x 1.83s 342ms 5.35x
libx11 6.63s 2.65s 2.50x 5.82s 1.62s 3.60x
freetype 3.69s 1.24s 2.98x 2.69s 432ms 6.22x
protobuf 4.57s 4.80s 0.95x 3.50s 3.24s 1.08x
gnupg 27.40s 5.24s 5.23x 25.83s 3.67s 7.04x
openjph 9.82s 2.40s 4.09x 8.69s 1.49s 5.82x
libtasn1 2.75s 1.06s 2.58x 1.88s 389ms 4.84x
ruby 18.12s 8.52s 2.13x 17.26s 5.25s 3.29x
gnutls 18.73s 3.87s 4.84x 17.39s 2.52s 6.89x
expat 2.86s 1.04s 2.76x 1.84s 305ms 6.03x
libsodium 2.87s 1.14s 2.51x 1.88s 334ms 5.61x
simdjson 2.92s 1.11s 2.64x 1.87s 303ms 6.16x
gemini-cli 35.65s 16.24s 2.20x 33.95s 13.65s 2.49x
libarchive 6.22s 1.65s 3.78x 5.16s 802ms 6.44x
pyenv 15.62s 3.34s 4.67x 14.18s 1.70s 8.33x
pixman 2.88s 1.07s 2.70x 1.87s 303ms 6.17x
curl 20.14s 3.57s 5.64x 18.91s 2.29s 8.24x
opus 2.98s 1.11s 2.70x 1.90s 307ms 6.18x
unbound 14.78s 2.82s 5.25x 13.73s 1.36s 10.11x
cairo 22.55s 6.24s 3.62x 21.26s 4.57s 4.65x
pango 29.43s 8.03s 3.67x 28.14s 6.06s 4.64x
leptonica 11.62s 3.19s 3.64x 10.58s 2.09s 5.06x
libxcb 5.77s 2.27s 2.54x 4.71s 1.43s 3.29x
jpeg-xl 16.20s 4.30s 3.76x 15.10s 3.04s 4.97x
coreutils 3.82s 1.80s 2.12x 2.77s 864ms 3.20x
certifi 9.62s 1.06s 9.05x 8.86s 278ms 31.87x
krb5 12.61s 2.96s 4.25x 11.49s 1.66s 6.93x
docker 2.64s 1.34s 1.97x 1.53s 492ms 3.12x
libheif 13.27s 3.53s 3.76x 12.23s 2.25s 5.43x
webp 5.36s 1.49s 3.60x 4.40s 804ms 5.47x
libxext 7.61s 3.06s 2.49x 6.66s 1.74s 3.83x
libxau 3.25s 1.17s 2.78x 2.35s 376ms 6.26x
gcc 13.09s 6.62s 1.98x 10.37s 3.33s 3.11x
bzip2 2.56s 1.19s 2.15x 1.48s 362ms 4.08x
libxdmcp 3.20s 1.17s 2.73x 2.34s 371ms 6.32x
abseil 3.43s 2.15s 1.60x 2.29s 1.12s 2.04x
xcbeautify 2.45s 1.17s 2.10x 1.49s 294ms 5.06x
libuv 2.80s 1.04s 2.68x 1.85s 304ms 6.10x
giflib 2.83s 1.03s 2.73x 1.85s 299ms 6.19x
utf8proc 2.81s 1.12s 2.52x 1.84s 300ms 6.12x
libxrender 7.55s 2.91s 2.59x 6.66s 1.66s 4.01x
m4 2.46s 1.30s 1.88x 1.44s 343ms 4.19x
graphite2 2.85s 1.08s 2.63x 1.84s 307ms 6.00x
openjdk 35.03s 10.47s 3.34x 32.72s 7.30s 4.48x
uvwasi 3.66s 1.24s 2.95x 2.71s 401ms 6.76x
libffi 2.90s 1.26s 2.31x 1.81s 288ms 6.28x
libdeflate 2.92s 1.07s 2.71x 1.84s 303ms 6.09x
llvm 17.90s 16.65s 1.08x 11.66s 7.41s 1.57x
aom 4.01s 1.48s 2.71x 2.76s 621ms 4.44x
lzo 2.95s 1.06s 2.78x 1.83s 296ms 6.20x
libevent 12.33s 2.90s 4.25x 11.28s 1.06s 10.59x
libgpg-error 5.79s 2.76s 2.10x 4.86s 1.61s 3.02x
libidn2 5.82s 2.64s 2.20x 4.86s 1.68s 2.90x
berkeley-db@5 4.49s 2.77s 1.62x 3.01s 1.20s 2.50x
deno 12.93s 4.67s 2.77x 11.62s 3.21s 3.62x
libedit 2.93s 1.09s 2.69x 1.83s 300ms 6.11x
oniguruma 2.76s 1.10s 2.51x 1.84s 302ms 6.10x

To reproduce, run just bench --full results/ on a machine with nothing installed in Homebrew. It resets zerobrew, uninstalls everything it installed in Homebrew, and writes a README-ready table to results/benchmark.md.

Relationship with Homebrew

zerobrew is more of a performance-optimized client for the Homebrew ecosystem. We rely on:

  • Homebrew's formula definitions (homebrew-core)
  • Homebrew's pre-built bottles when available
  • Homebrew's package metadata and infrastructure

Our innovations focus on:

  • Content-addressable storage for deduplication
  • APFS clonefiles for zero-overhead copying
  • Source build fallback using Homebrew's Ruby DSL

zerobrew is experimental. We recommend running it alongside Homebrew rather than as a replacement, and do not recommend purging homebrew and replacing it with zerobrew unless you are absolutely sure about the implications of doing so.

Project status

  • Status: Experimental, but already useful for many common Homebrew formulas.
  • Feedback: If you hit incompatibilities, please open an issue or PR.
  • License: Dual-licensed under Apache 2.0 OR MIT, at your choice.

About

A 5-20x faster experimental Homebrew alternative

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages