{"article":{"slug":"zerobrew-a-faster-alternative-to-homebrew","title":"Zerobrew: A faster alternative to Homebrew","subtitle":null,"summary":"Zerobrew is an open-source package manager positioned as a faster Homebrew alternative, documenting install flow, architecture, and claimed speedups up to about 6.6×.","content_type":"announcement","language":"en","canonical_url":"https://github.com/zerobrewhq/zerobrew","author":{"name":"Zerobrew","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Zerobrew","url":"https://github.com/zerobrewhq/zerobrew","listing_slug":null,"listing":null},"topics":[{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"},{"name":"Developer Tools","slug":"developer-tools","url":"https://listedarticles.com/topics/developer-tools"},{"name":"macOS","slug":"macos","url":"https://listedarticles.com/topics/macos"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1811,"reading_minutes":8,"published_at":"2026-10-09T03:12:00.759Z","added_at":"2026-10-09T03:12:00.759Z","updated_at":"2026-10-09T03:12:00.759Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/zerobrew-a-faster-alternative-to-homebrew","markdown_url":"https://listedarticles.com/articles/zerobrew-a-faster-alternative-to-homebrew.md","example":false,"citation":"Zerobrew, Zerobrew. \"Zerobrew: A faster alternative to Homebrew.\" 9 Oct 2026. https://github.com/zerobrewhq/zerobrew (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://github.com/zerobrewhq/zerobrew"},"body_markdown":"<div align=\"center\">\n\n<h2>zerobrew</h2>\n\n<p align=\"center\">\n  <strong>English</strong> ·\n  <a href=\"README.zh.md\">中文</a>\n</p>\n\n[![Lint](https://github.com/zerobrewhq/zerobrew/actions/workflows/ci.yml/badge.svg)](https://github.com/zerobrewhq/zerobrew/actions/workflows/ci.yml)\n[![Test](https://github.com/zerobrewhq/zerobrew/actions/workflows/test.yml/badge.svg)](https://github.com/zerobrewhq/zerobrew/actions/workflows/test.yml)\n[![Release](https://img.shields.io/github/v/release/zerobrewhq/zerobrew?display_name=tag)](https://github.com/zerobrewhq/zerobrew/releases)\n[![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.gg/ZaPYwm9zaw)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE-MIT.md)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](./LICENSE-APACHE.md)\n\n<img alt=\"zerobrew demo\" src=\"./assets/zb-demo.gif\" />\n\n<p><strong>zerobrew brings uv-style architecture to Homebrew packages on macOS and Linux.</strong></p>\n\n</div>\n\n## Install\n\n```bash\ncurl -fsSL https://zerobrew.rs/install | bash\n```\n\nThe installer updates your shell config. After it finishes, restart your terminal\nor run the `source` command it prints.\n\nOr via Homebrew:\n\n```bash\nbrew install zerobrewhq/zerobrew/zerobrew\n```\n\n## Update zerobrew\n\nIf you used the standalone installer, rerun it:\n\n```bash\ncurl -fsSL https://zerobrew.rs/install | bash\nzb --version\n```\n\nIf you installed with Homebrew:\n\n```bash\nbrew update && brew upgrade zerobrew\n```\n\nIf you installed from the old `lucasgelfond/zerobrew` tap, it's no longer updated. Switch to the new one:\n\n```bash\nbrew uninstall zerobrew\nbrew untap lucasgelfond/zerobrew\nbrew install zerobrewhq/zerobrew/zerobrew\n```\n\n## Quick start\n\n```bash\nzb install jq                   # install one package\nzb install wget git             # install multiple\nzb bundle                       # install from Brewfile\nzb bundle install -f myfile     # install from custom file\nzb bundle dump                  # export installed packages to Brewfile\nzb bundle dump -f out --force   # dump to custom file (overwrite)\nzb uninstall jq                 # uninstall one package\nzb outdated                     # list packages with newer versions\nzb upgrade                      # upgrade all outdated packages\nzb upgrade jq wget              # upgrade specific packages\nzb reset                        # uninstall everything\nzb gc                           # garbage collect unused store entries\nzbx jq --version                # run without linking\n```\n\n## Performance snapshot\n\n<div align=\"center\">\n\n| Package | Homebrew (cold) | ZB (cold) | Cold speedup | Homebrew (warm) | ZB (warm) | Warm speedup |\n|---------|-----------------|-----------|--------------|-----------------|-----------|--------------|\n| **Overall (100 packages)** | 776s | 117s | **6.6x** | 638s | 9.3s | **68x** |\n| python@3.14 | 16.99s | 1.97s | 8.6x | 14.37s | 207ms | 69.4x |\n| node | 29.31s | 3.16s | 9.3x | 28.24s | 232ms | 121.7x |\n| tesseract | 34.63s | 2.16s | 16.0x | 32.37s | 476ms | 68.0x |\n| openjdk | 32.09s | 5.17s | 6.2x | 26.86s | 448ms | 60.0x |\n| llvm | 18.22s | 9.14s | 2.0x | 9.66s | 183ms | 52.8x |\n\n</div>\n\nMeasured on 2026-10-08 with zerobrew 0.3.5 (development release) and Homebrew 7.0.8 on macOS 26.6.2, MacBook Pro (M3 Pro, 18 GB RAM), ~318 Mbit/s download bandwidth. Homebrew started with nothing installed.\n\n- **Cold**: the package and all of its dependencies uninstalled, empty download cache.\n- **Warm**: the package and all of its dependencies uninstalled, downloads from the cold run still cached.\n- The median package was 5.3x faster cold and 56x faster warm. Per package, cold ranged from 1.6x (go) to 20x (ca-certificates) and warm from 18x (go) to 252x (ca-certificates). 24 of the 100 packages installed 100x faster or more warm, which is what the asterisk on the tagline refers to.\n- Cold installs are bound by the link. The same run on a ~69 Mbit/s connection ([results/2026-10-07](results/2026-10-07/benchmark.md)) came out at 3.3x cold and 69x warm. Big bottles like go and llvm spend nearly all of their cold time downloading, so both tools land close together there.\n- zerobrew doesn't run post-install steps yet. Homebrew did in these runs, so for the 13 formulae here that have them (ca-certificates, fontconfig, gcc, glib, gnupg, gnutls, llvm, node, openssl@3, python@3.13, python@3.14, ruby, unbound) Homebrew is doing work we aren't. ca-certificates is the obvious one, its step rebuilds the cert bundle. Next run gets `--skip-post-install` on the brew side until we run them too.\n- Warm installs use more disk. After an uninstall brew keeps the bottle, we keep the bottle and the unpacked keg in the store. That's the whole reason a reinstall is a clone and not a rebuild.\n\n<details>\n<summary>Full results</summary>\n\n| Package | Homebrew (cold) | ZB (cold) | Cold speedup | Homebrew (warm) | ZB (warm) | Warm speedup |\n|---------|-----------------|-----------|--------------|-----------------|-----------|--------------|\n| **Overall (100 packages)** | 775.60s | 117.43s | **6.60x** | 637.50s | 9.33s | **68.31x** |\n| ca-certificates | 7.65s | 376ms | 20.35x | 6.55s | 26ms | 252.12x |\n| openssl@3 | 11.02s | 1.30s | 8.46x | 9.18s | 64ms | 143.47x |\n| xz | 2.39s | 454ms | 5.26x | 1.46s | 29ms | 50.31x |\n| sqlite | 2.99s | 591ms | 5.06x | 2.04s | 27ms | 75.67x |\n| readline | 2.48s | 494ms | 5.02x | 1.46s | 26ms | 56.08x |\n| icu4c@78 | 3.32s | 1.57s | 2.11x | 1.96s | 33ms | 59.42x |\n| python@3.14 | 16.99s | 1.97s | 8.62x | 14.37s | 207ms | 69.41x |\n| awscli | 27.22s | 3.37s | 8.08x | 25.56s | 483ms | 52.92x |\n| node | 29.31s | 3.16s | 9.28x | 28.24s | 232ms | 121.72x |\n| harfbuzz | 29.34s | 2.20s | 13.34x | 22.35s | 364ms | 61.41x |\n| ncurses | 3.13s | 1.04s | 3.01x | 2.04s | 69ms | 29.59x |\n| gh | 2.60s | 903ms | 2.87x | 1.35s | 38ms | 35.58x |\n| pcre2 | 2.58s | 631ms | 4.08x | 1.57s | 35ms | 44.94x |\n| libpng | 2.49s | 854ms | 2.92x | 1.50s | 27ms | 55.70x |\n| zstd | 4.12s | 672ms | 6.13x | 2.74s | 34ms | 80.50x |\n| glib | 7.02s | 1.72s | 4.08x | 5.24s | 94ms | 55.76x |\n| lz4 | 2.89s | 635ms | 4.54x | 1.48s | 27ms | 54.74x |\n| gettext | 4.72s | 1.30s | 3.61x | 3.25s | 64ms | 50.81x |\n| libngtcp2 | 10.79s | 1.40s | 7.73x | 9.20s | 66ms | 139.36x |\n| libnghttp3 | 2.38s | 436ms | 5.47x | 1.47s | 27ms | 54.44x |\n| pkgconf | 2.35s | 469ms | 5.02x | 1.47s | 27ms | 54.59x |\n| libunistring | 2.57s | 981ms | 2.62x | 1.49s | 26ms | 57.12x |\n| mpdecimal | 2.53s | 705ms | 3.59x | 1.47s | 27ms | 54.33x |\n| brotli | 2.65s | 776ms | 3.41x | 1.48s | 27ms | 54.67x |\n| jpeg-turbo | 2.55s | 889ms | 2.87x | 1.48s | 27ms | 54.78x |\n| xorgproto | 2.21s | 484ms | 4.57x | 1.21s | 29ms | 41.59x |\n| ffmpeg | 18.57s | 1.76s | 10.54x | 17.62s | 164ms | 107.41x |\n| cmake | 4.04s | 1.66s | 2.44x | 1.73s | 80ms | 21.64x |\n| libnghttp2 | 2.63s | 635ms | 4.14x | 1.46s | 26ms | 56.31x |\n| go | 5.43s | 3.36s | 1.61x | 3.40s | 190ms | 17.92x |\n| uv | 2.90s | 1.37s | 2.12x | 1.27s | 28ms | 45.43x |\n| gmp | 2.62s | 543ms | 4.83x | 1.47s | 26ms | 56.42x |\n| libtiff | 7.08s | 821ms | 8.62x | 6.11s | 53ms | 115.19x |\n| fontconfig | 9.35s | 982ms | 9.52x | 8.13s | 77ms | 105.61x |\n| python@3.13 | 14.28s | 1.76s | 8.12x | 13.15s | 186ms | 70.71x |\n| git | 6.46s | 1.67s | 3.88x | 4.98s | 101ms | 49.33x |\n| little-cms2 | 7.85s | 792ms | 9.91x | 6.83s | 55ms | 124.16x |\n| dav1d | 2.49s | 544ms | 4.58x | 1.47s | 26ms | 56.42x |\n| openexr | 9.95s | 712ms | 13.98x | 8.83s | 59ms | 149.59x |\n| c-ares | 2.51s | 513ms | 4.90x | 1.51s | 32ms | 47.34x |\n| tesseract | 34.63s | 2.16s | 16.01x | 32.37s | 476ms | 68.01x |\n| p11-kit | 9.26s | 996ms | 9.30x | 7.95s | 32ms | 248.53x |\n| imagemagick | 14.51s | 1.21s | 12.00x | 13.20s | 82ms | 160.95x |\n| zlib | 2.36s | 430ms | 5.48x | 1.46s | 25ms | 58.44x |\n| libx11 | 5.70s | 932ms | 6.11x | 4.71s | 174ms | 27.05x |\n| freetype | 3.51s | 585ms | 5.99x | 2.21s | 32ms | 69.22x |\n| protobuf | 4.06s | 725ms | 5.60x | 3.09s | 57ms | 54.21x |\n| gnupg | 21.97s | 1.36s | 16.16x | 20.63s | 192ms | 107.44x |\n| openjph | 7.88s | 697ms | 11.31x | 6.80s | 54ms | 126.02x |\n| libtasn1 | 2.30s | 461ms | 4.99x | 1.49s | 28ms | 53.25x |\n| ruby | 16.01s | 3.83s | 4.18x | 14.56s | 801ms | 18.18x |\n| gnutls | 14.93s | 1.19s | 12.52x | 13.93s | 134ms | 103.96x |\n| expat | 2.40s | 442ms | 5.42x | 1.48s | 26ms | 56.88x |\n| libsodium | 2.44s | 884ms | 2.76x | 1.48s | 27ms | 54.96x |\n| simdjson | 2.52s | 619ms | 4.08x | 1.49s | 26ms | 57.12x |\n| gemini-cli | 29.98s | 2.23s | 13.43x | 27.64s | 235ms | 117.60x |\n| libarchive | 5.02s | 594ms | 8.45x | 4.04s | 35ms | 115.31x |\n| pyenv | 12.61s | 1.39s | 9.06x | 11.44s | 135ms | 84.76x |\n| pixman | 2.44s | 487ms | 5.01x | 1.49s | 26ms | 57.19x |\n| curl | 16.37s | 1.47s | 11.12x | 15.20s | 173ms | 87.88x |\n| opus | 2.37s | 497ms | 4.76x | 1.47s | 27ms | 54.59x |\n| unbound | 12.24s | 1.35s | 9.07x | 11.03s | 113ms | 97.58x |\n| cairo | 19.28s | 1.48s | 12.99x | 17.74s | 370ms | 47.95x |\n| pango | 24.48s | 1.69s | 14.46x | 23.06s | 411ms | 56.10x |\n| leptonica | 9.48s | 914ms | 10.37x | 8.39s | 66ms | 127.18x |\n| libxcb | 4.88s | 887ms | 5.50x | 3.89s | 132ms | 29.45x |\n| jpeg-xl | 12.96s | 997ms | 13.00x | 11.92s | 70ms | 170.31x |\n| coreutils | 3.31s | 760ms | 4.35x | 2.24s | 38ms | 58.97x |\n| certifi | 7.81s | 461ms | 16.95x | 6.98s | 31ms | 225.06x |\n| krb5 | 10.49s | 1.34s | 7.85x | 9.28s | 68ms | 136.44x |\n| docker | 2.26s | 734ms | 3.08x | 1.21s | 29ms | 41.83x |\n| libheif | 10.88s | 961ms | 11.32x | 9.59s | 63ms | 152.24x |\n| webp | 4.31s | 578ms | 7.46x | 3.37s | 35ms | 96.40x |\n| libxext | 6.45s | 982ms | 6.57x | 5.42s | 182ms | 29.80x |\n| libxau | 2.74s | 512ms | 5.35x | 1.85s | 33ms | 56.06x |\n| gcc | 12.23s | 3.55s | 3.45x | 8.58s | 67ms | 128.00x |\n| bzip2 | 2.09s | 368ms | 5.69x | 1.14s | 26ms | 43.65x |\n| libxdmcp | 2.74s | 540ms | 5.08x | 1.86s | 33ms | 56.42x |\n| abseil | 3.05s | 800ms | 3.82x | 1.90s | 50ms | 38.04x |\n| xcbeautify | 2.22s | 481ms | 4.62x | 1.15s | 26ms | 44.35x |\n| libuv | 2.51s | 482ms | 5.20x | 1.47s | 26ms | 56.65x |\n| giflib | 2.31s | 673ms | 3.44x | 1.46s | 26ms | 56.12x |\n| utf8proc | 2.36s | 452ms | 5.23x | 1.46s | 27ms | 54.15x |\n| libxrender | 6.35s | 976ms | 6.51x | 5.42s | 179ms | 30.25x |\n| m4 | 2.00s | 431ms | 4.65x | 1.13s | 25ms | 45.28x |\n| graphite2 | 2.47s | 428ms | 5.78x | 1.46s | 26ms | 56.23x |\n| openjdk | 32.09s | 5.17s | 6.21x | 26.86s | 448ms | 59.96x |\n| uvwasi | 2.95s | 483ms | 6.10x | 2.11s | 29ms | 72.66x |\n| libffi | 2.56s | 575ms | 4.46x | 1.43s | 26ms | 55.08x |\n| libdeflate | 2.44s | 458ms | 5.33x | 1.46s | 26ms | 56.12x |\n| llvm | 18.22s | 9.14s | 1.99x | 9.66s | 183ms | 52.79x |\n| aom | 3.25s | 699ms | 4.65x | 2.16s | 32ms | 67.50x |\n| lzo | 2.38s | 449ms | 5.31x | 1.46s | 26ms | 56.00x |\n| libevent | 10.66s | 1.33s | 7.99x | 9.19s | 71ms | 129.42x |\n| libgpg-error | 5.06s | 1.11s | 4.56x | 3.84s | 70ms | 54.81x |\n| libidn2 | 4.97s | 1.09s | 4.56x | 3.87s | 69ms | 56.12x |\n| berkeley-db@5 | 4.05s | 1.96s | 2.06x | 2.60s | 56ms | 46.45x |\n| deno | 10.57s | 1.46s | 7.23x | 9.24s | 57ms | 162.09x |\n| libedit | 2.35s | 442ms | 5.33x | 1.45s | 26ms | 55.65x |\n| oniguruma | 2.37s | 508ms | 4.67x | 1.46s | 26ms | 56.19x |\n\n</details>\n\nTo 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 table to `results/benchmark.md`.\n\nA smaller version runs in CI: the [parity workflow](https://github.com/zerobrewhq/zerobrew/actions/workflows/parity.yml) installs a fixed set of formulae with both tools on the same runner and compares the resulting prefixes byte for byte, and the [timing workflow](https://github.com/zerobrewhq/zerobrew/actions/workflows/timing.yml) times those formulae plus node and python@3.14, cold and warm, with both tools and with the last zerobrew release. \n\nThe nightly timing run fails if zerobrew is less than 1.5x faster than Homebrew cold or 3x warm on any of them, or more than 20% slower than the last release overall.\n\n## A note on how we are achieving these speeds\n\nWRT Homebrew, I want it to be clear that both `brew` and `zerobrew` install the same bottles from *Homebrew's build farm*. \n\nThe difference is what happens after the download: Homebrew runs Ruby to evaluate the formula, unpacks, rewrites paths with `install_name_tool`, and re-signs each binary one at a time, while zerobrew **does the relocation in-process** and links from a content-addressed store, so it pays for the download once and almost nothing after.\n\n**I want it to be clear that we are basically nothing without Homebrew's bottle build farm**. Every package zerobrew installs is one they built, tested and published. We don't compile anything, we don't maintain formulae, and none of these numbers exist without that work. The speed comes from how the artifacts are installed, not from what's in them.\n\nThis is a good read, if you're interested in what zerobrew is and isn't: [Standing on the shoulders of Homebrew](https://nesbitt.io/2026/04/14/standing-on-the-shoulders-of-homebrew.html) by Andrew Nesbitt. It makes the point better than I can.\n\n**nanobrew:**\n\n[nanobrew’s](https://github.com/justrach/nanobrew) published numbers time a “warm install” of a package that is already installed, which is an early exit, not an install, and compare against zerobrew 0.1.0. \n\nEvery number above is a real install from an uninstalled state, with the script and the full log in this repo, so you can run it yourself.\n\n## Relationship with Homebrew\n\nzerobrew is more of a performance-optimized client for the Homebrew ecosystem. We rely on:\n- Homebrew's formula definitions (homebrew-core)\n- Homebrew's pre-built bottles when available\n- Homebrew's package metadata and infrastructure\n\nOur innovations focus on:\n- Content-addressable storage for deduplication\n- APFS clonefiles for zero-overhead copying\n- Source build fallback using Homebrew's Ruby DSL\n\nzerobrew is experimental. We recommend running it alongside Homebrew rather than as a replacement, and do _not_ \nrecommend purging homebrew and replacing it with zerobrew unless you are absolutely sure about the implications of \ndoing so. \n\n## Project status\n\n<div align=\"center\">\n  <a href=\"https://star-history.com/#zerobrewhq/zerobrew&Date\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=zerobrewhq/zerobrew&type=Date&theme=dark\" />\n      <img alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=zerobrewhq/zerobrew&type=Date\" />\n    </picture>\n  </a>\n</div>\n\n- **Status:** Experimental, but quite useful. I ([@cachebag](https://github.com/cachebag)) daily drive it myself.\n- **Feedback:** If you hit incompatibilities, please open an issue or PR.\n- **License:** Dual-licensed under [Apache 2.0](./LICENSE-APACHE.md) OR [MIT](./LICENSE-MIT.md), at your choice. The source build shim is derived from Homebrew and is covered by its [BSD 2-Clause license](./LICENSE-HOMEBREW).\n","body_html":"<p>&lt;div align=&quot;center&quot;&gt;</p>\n<p>&lt;h2&gt;zerobrew&lt;/h2&gt;</p>\n<p>&lt;p align=&quot;center&quot;&gt;\n  &lt;strong&gt;English&lt;/strong&gt; ·\n  &lt;a href=&quot;README.zh.md&quot;&gt;中文&lt;/a&gt;\n&lt;/p&gt;</p>\n<p><a href=\"https://github.com/zerobrewhq/zerobrew/actions/workflows/ci.yml\" rel=\"nofollow ugc noopener\"><img src=\"https://github.com/zerobrewhq/zerobrew/actions/workflows/ci.yml/badge.svg\" alt=\"Lint\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></a>\n<a href=\"https://github.com/zerobrewhq/zerobrew/actions/workflows/test.yml\" rel=\"nofollow ugc noopener\"><img src=\"https://github.com/zerobrewhq/zerobrew/actions/workflows/test.yml/badge.svg\" alt=\"Test\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></a>\n<a href=\"https://github.com/zerobrewhq/zerobrew/releases\" rel=\"nofollow ugc noopener\"><img src=\"https://img.shields.io/github/v/release/zerobrewhq/zerobrew?display_name=tag\" alt=\"Release\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></a>\n<a href=\"https://discord.gg/ZaPYwm9zaw\" rel=\"nofollow ugc noopener\"><img src=\"https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&amp;logoColor=white\" alt=\"Discord\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></a>\n<img src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" />\n<img src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg\" alt=\"License: Apache 2.0\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></p>\n<p>&lt;img alt=&quot;zerobrew demo&quot; src=&quot;./assets/zb-demo.gif&quot; /&gt;</p>\n<p>&lt;p&gt;&lt;strong&gt;zerobrew brings uv-style architecture to Homebrew packages on macOS and Linux.&lt;/strong&gt;&lt;/p&gt;</p>\n<p>&lt;/div&gt;</p>\n<h2 id=\"install\">Install</h2>\n<pre><code class=\"language-bash\">curl -fsSL https://zerobrew.rs/install | bash</code></pre>\n<p>The installer updates your shell config. After it finishes, restart your terminal\nor run the <code>source</code> command it prints.</p>\n<p>Or via Homebrew:</p>\n<pre><code class=\"language-bash\">brew install zerobrewhq/zerobrew/zerobrew</code></pre>\n<h2 id=\"update-zerobrew\">Update zerobrew</h2>\n<p>If you used the standalone installer, rerun it:</p>\n<pre><code class=\"language-bash\">curl -fsSL https://zerobrew.rs/install | bash\nzb --version</code></pre>\n<p>If you installed with Homebrew:</p>\n<pre><code class=\"language-bash\">brew update &amp;&amp; brew upgrade zerobrew</code></pre>\n<p>If you installed from the old <code>lucasgelfond/zerobrew</code> tap, it&#39;s no longer updated. Switch to the new one:</p>\n<pre><code class=\"language-bash\">brew uninstall zerobrew\nbrew untap lucasgelfond/zerobrew\nbrew install zerobrewhq/zerobrew/zerobrew</code></pre>\n<h2 id=\"quick-start\">Quick start</h2>\n<pre><code class=\"language-bash\">zb install jq                   # install one package\nzb install wget git             # install multiple\nzb bundle                       # install from Brewfile\nzb bundle install -f myfile     # install from custom file\nzb bundle dump                  # export installed packages to Brewfile\nzb bundle dump -f out --force   # dump to custom file (overwrite)\nzb uninstall jq                 # uninstall one package\nzb outdated                     # list packages with newer versions\nzb upgrade                      # upgrade all outdated packages\nzb upgrade jq wget              # upgrade specific packages\nzb reset                        # uninstall everything\nzb gc                           # garbage collect unused store entries\nzbx jq --version                # run without linking</code></pre>\n<h2 id=\"performance-snapshot\">Performance snapshot</h2>\n<p>&lt;div align=&quot;center&quot;&gt;</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Package</th><th>Homebrew (cold)</th><th>ZB (cold)</th><th>Cold speedup</th><th>Homebrew (warm)</th><th>ZB (warm)</th><th>Warm speedup</th></tr></thead><tbody><tr><td><strong>Overall (100 packages)</strong></td><td>776s</td><td>117s</td><td><strong>6.6x</strong></td><td>638s</td><td>9.3s</td><td><strong>68x</strong></td></tr><tr><td>python@3.14</td><td>16.99s</td><td>1.97s</td><td>8.6x</td><td>14.37s</td><td>207ms</td><td>69.4x</td></tr><tr><td>node</td><td>29.31s</td><td>3.16s</td><td>9.3x</td><td>28.24s</td><td>232ms</td><td>121.7x</td></tr><tr><td>tesseract</td><td>34.63s</td><td>2.16s</td><td>16.0x</td><td>32.37s</td><td>476ms</td><td>68.0x</td></tr><tr><td>openjdk</td><td>32.09s</td><td>5.17s</td><td>6.2x</td><td>26.86s</td><td>448ms</td><td>60.0x</td></tr><tr><td>llvm</td><td>18.22s</td><td>9.14s</td><td>2.0x</td><td>9.66s</td><td>183ms</td><td>52.8x</td></tr></tbody></table></div>\n<p>&lt;/div&gt;</p>\n<p>Measured on 2026-10-08 with zerobrew 0.3.5 (development release) and Homebrew 7.0.8 on macOS 26.6.2, MacBook Pro (M3 Pro, 18 GB RAM), ~318 Mbit/s download bandwidth. Homebrew started with nothing installed.</p>\n<ul><li><strong>Cold</strong>: the package and all of its dependencies uninstalled, empty download cache.</li><li><strong>Warm</strong>: the package and all of its dependencies uninstalled, downloads from the cold run still cached.</li><li>The median package was 5.3x faster cold and 56x faster warm. Per package, cold ranged from 1.6x (go) to 20x (ca-certificates) and warm from 18x (go) to 252x (ca-certificates). 24 of the 100 packages installed 100x faster or more warm, which is what the asterisk on the tagline refers to.</li><li>Cold installs are bound by the link. The same run on a ~69 Mbit/s connection (results/2026-10-07) came out at 3.3x cold and 69x warm. Big bottles like go and llvm spend nearly all of their cold time downloading, so both tools land close together there.</li><li>zerobrew doesn&#39;t run post-install steps yet. Homebrew did in these runs, so for the 13 formulae here that have them (ca-certificates, fontconfig, gcc, glib, gnupg, gnutls, llvm, node, openssl@3, python@3.13, python@3.14, ruby, unbound) Homebrew is doing work we aren&#39;t. ca-certificates is the obvious one, its step rebuilds the cert bundle. Next run gets <code>--skip-post-install</code> on the brew side until we run them too.</li><li>Warm installs use more disk. After an uninstall brew keeps the bottle, we keep the bottle and the unpacked keg in the store. That&#39;s the whole reason a reinstall is a clone and not a rebuild.</li></ul>\n<p>&lt;details&gt;\n&lt;summary&gt;Full results&lt;/summary&gt;</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Package</th><th>Homebrew (cold)</th><th>ZB (cold)</th><th>Cold speedup</th><th>Homebrew (warm)</th><th>ZB (warm)</th><th>Warm speedup</th></tr></thead><tbody><tr><td><strong>Overall (100 packages)</strong></td><td>775.60s</td><td>117.43s</td><td><strong>6.60x</strong></td><td>637.50s</td><td>9.33s</td><td><strong>68.31x</strong></td></tr><tr><td>ca-certificates</td><td>7.65s</td><td>376ms</td><td>20.35x</td><td>6.55s</td><td>26ms</td><td>252.12x</td></tr><tr><td>openssl@3</td><td>11.02s</td><td>1.30s</td><td>8.46x</td><td>9.18s</td><td>64ms</td><td>143.47x</td></tr><tr><td>xz</td><td>2.39s</td><td>454ms</td><td>5.26x</td><td>1.46s</td><td>29ms</td><td>50.31x</td></tr><tr><td>sqlite</td><td>2.99s</td><td>591ms</td><td>5.06x</td><td>2.04s</td><td>27ms</td><td>75.67x</td></tr><tr><td>readline</td><td>2.48s</td><td>494ms</td><td>5.02x</td><td>1.46s</td><td>26ms</td><td>56.08x</td></tr><tr><td>icu4c@78</td><td>3.32s</td><td>1.57s</td><td>2.11x</td><td>1.96s</td><td>33ms</td><td>59.42x</td></tr><tr><td>python@3.14</td><td>16.99s</td><td>1.97s</td><td>8.62x</td><td>14.37s</td><td>207ms</td><td>69.41x</td></tr><tr><td>awscli</td><td>27.22s</td><td>3.37s</td><td>8.08x</td><td>25.56s</td><td>483ms</td><td>52.92x</td></tr><tr><td>node</td><td>29.31s</td><td>3.16s</td><td>9.28x</td><td>28.24s</td><td>232ms</td><td>121.72x</td></tr><tr><td>harfbuzz</td><td>29.34s</td><td>2.20s</td><td>13.34x</td><td>22.35s</td><td>364ms</td><td>61.41x</td></tr><tr><td>ncurses</td><td>3.13s</td><td>1.04s</td><td>3.01x</td><td>2.04s</td><td>69ms</td><td>29.59x</td></tr><tr><td>gh</td><td>2.60s</td><td>903ms</td><td>2.87x</td><td>1.35s</td><td>38ms</td><td>35.58x</td></tr><tr><td>pcre2</td><td>2.58s</td><td>631ms</td><td>4.08x</td><td>1.57s</td><td>35ms</td><td>44.94x</td></tr><tr><td>libpng</td><td>2.49s</td><td>854ms</td><td>2.92x</td><td>1.50s</td><td>27ms</td><td>55.70x</td></tr><tr><td>zstd</td><td>4.12s</td><td>672ms</td><td>6.13x</td><td>2.74s</td><td>34ms</td><td>80.50x</td></tr><tr><td>glib</td><td>7.02s</td><td>1.72s</td><td>4.08x</td><td>5.24s</td><td>94ms</td><td>55.76x</td></tr><tr><td>lz4</td><td>2.89s</td><td>635ms</td><td>4.54x</td><td>1.48s</td><td>27ms</td><td>54.74x</td></tr><tr><td>gettext</td><td>4.72s</td><td>1.30s</td><td>3.61x</td><td>3.25s</td><td>64ms</td><td>50.81x</td></tr><tr><td>libngtcp2</td><td>10.79s</td><td>1.40s</td><td>7.73x</td><td>9.20s</td><td>66ms</td><td>139.36x</td></tr><tr><td>libnghttp3</td><td>2.38s</td><td>436ms</td><td>5.47x</td><td>1.47s</td><td>27ms</td><td>54.44x</td></tr><tr><td>pkgconf</td><td>2.35s</td><td>469ms</td><td>5.02x</td><td>1.47s</td><td>27ms</td><td>54.59x</td></tr><tr><td>libunistring</td><td>2.57s</td><td>981ms</td><td>2.62x</td><td>1.49s</td><td>26ms</td><td>57.12x</td></tr><tr><td>mpdecimal</td><td>2.53s</td><td>705ms</td><td>3.59x</td><td>1.47s</td><td>27ms</td><td>54.33x</td></tr><tr><td>brotli</td><td>2.65s</td><td>776ms</td><td>3.41x</td><td>1.48s</td><td>27ms</td><td>54.67x</td></tr><tr><td>jpeg-turbo</td><td>2.55s</td><td>889ms</td><td>2.87x</td><td>1.48s</td><td>27ms</td><td>54.78x</td></tr><tr><td>xorgproto</td><td>2.21s</td><td>484ms</td><td>4.57x</td><td>1.21s</td><td>29ms</td><td>41.59x</td></tr><tr><td>ffmpeg</td><td>18.57s</td><td>1.76s</td><td>10.54x</td><td>17.62s</td><td>164ms</td><td>107.41x</td></tr><tr><td>cmake</td><td>4.04s</td><td>1.66s</td><td>2.44x</td><td>1.73s</td><td>80ms</td><td>21.64x</td></tr><tr><td>libnghttp2</td><td>2.63s</td><td>635ms</td><td>4.14x</td><td>1.46s</td><td>26ms</td><td>56.31x</td></tr><tr><td>go</td><td>5.43s</td><td>3.36s</td><td>1.61x</td><td>3.40s</td><td>190ms</td><td>17.92x</td></tr><tr><td>uv</td><td>2.90s</td><td>1.37s</td><td>2.12x</td><td>1.27s</td><td>28ms</td><td>45.43x</td></tr><tr><td>gmp</td><td>2.62s</td><td>543ms</td><td>4.83x</td><td>1.47s</td><td>26ms</td><td>56.42x</td></tr><tr><td>libtiff</td><td>7.08s</td><td>821ms</td><td>8.62x</td><td>6.11s</td><td>53ms</td><td>115.19x</td></tr><tr><td>fontconfig</td><td>9.35s</td><td>982ms</td><td>9.52x</td><td>8.13s</td><td>77ms</td><td>105.61x</td></tr><tr><td>python@3.13</td><td>14.28s</td><td>1.76s</td><td>8.12x</td><td>13.15s</td><td>186ms</td><td>70.71x</td></tr><tr><td>git</td><td>6.46s</td><td>1.67s</td><td>3.88x</td><td>4.98s</td><td>101ms</td><td>49.33x</td></tr><tr><td>little-cms2</td><td>7.85s</td><td>792ms</td><td>9.91x</td><td>6.83s</td><td>55ms</td><td>124.16x</td></tr><tr><td>dav1d</td><td>2.49s</td><td>544ms</td><td>4.58x</td><td>1.47s</td><td>26ms</td><td>56.42x</td></tr><tr><td>openexr</td><td>9.95s</td><td>712ms</td><td>13.98x</td><td>8.83s</td><td>59ms</td><td>149.59x</td></tr><tr><td>c-ares</td><td>2.51s</td><td>513ms</td><td>4.90x</td><td>1.51s</td><td>32ms</td><td>47.34x</td></tr><tr><td>tesseract</td><td>34.63s</td><td>2.16s</td><td>16.01x</td><td>32.37s</td><td>476ms</td><td>68.01x</td></tr><tr><td>p11-kit</td><td>9.26s</td><td>996ms</td><td>9.30x</td><td>7.95s</td><td>32ms</td><td>248.53x</td></tr><tr><td>imagemagick</td><td>14.51s</td><td>1.21s</td><td>12.00x</td><td>13.20s</td><td>82ms</td><td>160.95x</td></tr><tr><td>zlib</td><td>2.36s</td><td>430ms</td><td>5.48x</td><td>1.46s</td><td>25ms</td><td>58.44x</td></tr><tr><td>libx11</td><td>5.70s</td><td>932ms</td><td>6.11x</td><td>4.71s</td><td>174ms</td><td>27.05x</td></tr><tr><td>freetype</td><td>3.51s</td><td>585ms</td><td>5.99x</td><td>2.21s</td><td>32ms</td><td>69.22x</td></tr><tr><td>protobuf</td><td>4.06s</td><td>725ms</td><td>5.60x</td><td>3.09s</td><td>57ms</td><td>54.21x</td></tr><tr><td>gnupg</td><td>21.97s</td><td>1.36s</td><td>16.16x</td><td>20.63s</td><td>192ms</td><td>107.44x</td></tr><tr><td>openjph</td><td>7.88s</td><td>697ms</td><td>11.31x</td><td>6.80s</td><td>54ms</td><td>126.02x</td></tr><tr><td>libtasn1</td><td>2.30s</td><td>461ms</td><td>4.99x</td><td>1.49s</td><td>28ms</td><td>53.25x</td></tr><tr><td>ruby</td><td>16.01s</td><td>3.83s</td><td>4.18x</td><td>14.56s</td><td>801ms</td><td>18.18x</td></tr><tr><td>gnutls</td><td>14.93s</td><td>1.19s</td><td>12.52x</td><td>13.93s</td><td>134ms</td><td>103.96x</td></tr><tr><td>expat</td><td>2.40s</td><td>442ms</td><td>5.42x</td><td>1.48s</td><td>26ms</td><td>56.88x</td></tr><tr><td>libsodium</td><td>2.44s</td><td>884ms</td><td>2.76x</td><td>1.48s</td><td>27ms</td><td>54.96x</td></tr><tr><td>simdjson</td><td>2.52s</td><td>619ms</td><td>4.08x</td><td>1.49s</td><td>26ms</td><td>57.12x</td></tr><tr><td>gemini-cli</td><td>29.98s</td><td>2.23s</td><td>13.43x</td><td>27.64s</td><td>235ms</td><td>117.60x</td></tr><tr><td>libarchive</td><td>5.02s</td><td>594ms</td><td>8.45x</td><td>4.04s</td><td>35ms</td><td>115.31x</td></tr><tr><td>pyenv</td><td>12.61s</td><td>1.39s</td><td>9.06x</td><td>11.44s</td><td>135ms</td><td>84.76x</td></tr><tr><td>pixman</td><td>2.44s</td><td>487ms</td><td>5.01x</td><td>1.49s</td><td>26ms</td><td>57.19x</td></tr><tr><td>curl</td><td>16.37s</td><td>1.47s</td><td>11.12x</td><td>15.20s</td><td>173ms</td><td>87.88x</td></tr><tr><td>opus</td><td>2.37s</td><td>497ms</td><td>4.76x</td><td>1.47s</td><td>27ms</td><td>54.59x</td></tr><tr><td>unbound</td><td>12.24s</td><td>1.35s</td><td>9.07x</td><td>11.03s</td><td>113ms</td><td>97.58x</td></tr><tr><td>cairo</td><td>19.28s</td><td>1.48s</td><td>12.99x</td><td>17.74s</td><td>370ms</td><td>47.95x</td></tr><tr><td>pango</td><td>24.48s</td><td>1.69s</td><td>14.46x</td><td>23.06s</td><td>411ms</td><td>56.10x</td></tr><tr><td>leptonica</td><td>9.48s</td><td>914ms</td><td>10.37x</td><td>8.39s</td><td>66ms</td><td>127.18x</td></tr><tr><td>libxcb</td><td>4.88s</td><td>887ms</td><td>5.50x</td><td>3.89s</td><td>132ms</td><td>29.45x</td></tr><tr><td>jpeg-xl</td><td>12.96s</td><td>997ms</td><td>13.00x</td><td>11.92s</td><td>70ms</td><td>170.31x</td></tr><tr><td>coreutils</td><td>3.31s</td><td>760ms</td><td>4.35x</td><td>2.24s</td><td>38ms</td><td>58.97x</td></tr><tr><td>certifi</td><td>7.81s</td><td>461ms</td><td>16.95x</td><td>6.98s</td><td>31ms</td><td>225.06x</td></tr><tr><td>krb5</td><td>10.49s</td><td>1.34s</td><td>7.85x</td><td>9.28s</td><td>68ms</td><td>136.44x</td></tr><tr><td>docker</td><td>2.26s</td><td>734ms</td><td>3.08x</td><td>1.21s</td><td>29ms</td><td>41.83x</td></tr><tr><td>libheif</td><td>10.88s</td><td>961ms</td><td>11.32x</td><td>9.59s</td><td>63ms</td><td>152.24x</td></tr><tr><td>webp</td><td>4.31s</td><td>578ms</td><td>7.46x</td><td>3.37s</td><td>35ms</td><td>96.40x</td></tr><tr><td>libxext</td><td>6.45s</td><td>982ms</td><td>6.57x</td><td>5.42s</td><td>182ms</td><td>29.80x</td></tr><tr><td>libxau</td><td>2.74s</td><td>512ms</td><td>5.35x</td><td>1.85s</td><td>33ms</td><td>56.06x</td></tr><tr><td>gcc</td><td>12.23s</td><td>3.55s</td><td>3.45x</td><td>8.58s</td><td>67ms</td><td>128.00x</td></tr><tr><td>bzip2</td><td>2.09s</td><td>368ms</td><td>5.69x</td><td>1.14s</td><td>26ms</td><td>43.65x</td></tr><tr><td>libxdmcp</td><td>2.74s</td><td>540ms</td><td>5.08x</td><td>1.86s</td><td>33ms</td><td>56.42x</td></tr><tr><td>abseil</td><td>3.05s</td><td>800ms</td><td>3.82x</td><td>1.90s</td><td>50ms</td><td>38.04x</td></tr><tr><td>xcbeautify</td><td>2.22s</td><td>481ms</td><td>4.62x</td><td>1.15s</td><td>26ms</td><td>44.35x</td></tr><tr><td>libuv</td><td>2.51s</td><td>482ms</td><td>5.20x</td><td>1.47s</td><td>26ms</td><td>56.65x</td></tr><tr><td>giflib</td><td>2.31s</td><td>673ms</td><td>3.44x</td><td>1.46s</td><td>26ms</td><td>56.12x</td></tr><tr><td>utf8proc</td><td>2.36s</td><td>452ms</td><td>5.23x</td><td>1.46s</td><td>27ms</td><td>54.15x</td></tr><tr><td>libxrender</td><td>6.35s</td><td>976ms</td><td>6.51x</td><td>5.42s</td><td>179ms</td><td>30.25x</td></tr><tr><td>m4</td><td>2.00s</td><td>431ms</td><td>4.65x</td><td>1.13s</td><td>25ms</td><td>45.28x</td></tr><tr><td>graphite2</td><td>2.47s</td><td>428ms</td><td>5.78x</td><td>1.46s</td><td>26ms</td><td>56.23x</td></tr><tr><td>openjdk</td><td>32.09s</td><td>5.17s</td><td>6.21x</td><td>26.86s</td><td>448ms</td><td>59.96x</td></tr><tr><td>uvwasi</td><td>2.95s</td><td>483ms</td><td>6.10x</td><td>2.11s</td><td>29ms</td><td>72.66x</td></tr><tr><td>libffi</td><td>2.56s</td><td>575ms</td><td>4.46x</td><td>1.43s</td><td>26ms</td><td>55.08x</td></tr><tr><td>libdeflate</td><td>2.44s</td><td>458ms</td><td>5.33x</td><td>1.46s</td><td>26ms</td><td>56.12x</td></tr><tr><td>llvm</td><td>18.22s</td><td>9.14s</td><td>1.99x</td><td>9.66s</td><td>183ms</td><td>52.79x</td></tr><tr><td>aom</td><td>3.25s</td><td>699ms</td><td>4.65x</td><td>2.16s</td><td>32ms</td><td>67.50x</td></tr><tr><td>lzo</td><td>2.38s</td><td>449ms</td><td>5.31x</td><td>1.46s</td><td>26ms</td><td>56.00x</td></tr><tr><td>libevent</td><td>10.66s</td><td>1.33s</td><td>7.99x</td><td>9.19s</td><td>71ms</td><td>129.42x</td></tr><tr><td>libgpg-error</td><td>5.06s</td><td>1.11s</td><td>4.56x</td><td>3.84s</td><td>70ms</td><td>54.81x</td></tr><tr><td>libidn2</td><td>4.97s</td><td>1.09s</td><td>4.56x</td><td>3.87s</td><td>69ms</td><td>56.12x</td></tr><tr><td>berkeley-db@5</td><td>4.05s</td><td>1.96s</td><td>2.06x</td><td>2.60s</td><td>56ms</td><td>46.45x</td></tr><tr><td>deno</td><td>10.57s</td><td>1.46s</td><td>7.23x</td><td>9.24s</td><td>57ms</td><td>162.09x</td></tr><tr><td>libedit</td><td>2.35s</td><td>442ms</td><td>5.33x</td><td>1.45s</td><td>26ms</td><td>55.65x</td></tr><tr><td>oniguruma</td><td>2.37s</td><td>508ms</td><td>4.67x</td><td>1.46s</td><td>26ms</td><td>56.19x</td></tr></tbody></table></div>\n<p>&lt;/details&gt;</p>\n<p>To reproduce, run <code>just bench --full results/</code> on a machine with nothing installed in Homebrew. It resets zerobrew, uninstalls everything it installed in Homebrew, and writes a table to <code>results/benchmark.md</code>.</p>\n<p>A smaller version runs in CI: the <a href=\"https://github.com/zerobrewhq/zerobrew/actions/workflows/parity.yml\" rel=\"nofollow ugc noopener\">parity workflow</a> installs a fixed set of formulae with both tools on the same runner and compares the resulting prefixes byte for byte, and the <a href=\"https://github.com/zerobrewhq/zerobrew/actions/workflows/timing.yml\" rel=\"nofollow ugc noopener\">timing workflow</a> times those formulae plus node and python@3.14, cold and warm, with both tools and with the last zerobrew release. </p>\n<p>The nightly timing run fails if zerobrew is less than 1.5x faster than Homebrew cold or 3x warm on any of them, or more than 20% slower than the last release overall.</p>\n<h2 id=\"a-note-on-how-we-are-achieving-these-speeds\">A note on how we are achieving these speeds</h2>\n<p>WRT Homebrew, I want it to be clear that both <code>brew</code> and <code>zerobrew</code> install the same bottles from <em>Homebrew&#39;s build farm</em>. </p>\n<p>The difference is what happens after the download: Homebrew runs Ruby to evaluate the formula, unpacks, rewrites paths with <code>install_name_tool</code>, and re-signs each binary one at a time, while zerobrew <strong>does the relocation in-process</strong> and links from a content-addressed store, so it pays for the download once and almost nothing after.</p>\n<p><strong>I want it to be clear that we are basically nothing without Homebrew&#39;s bottle build farm</strong>. Every package zerobrew installs is one they built, tested and published. We don&#39;t compile anything, we don&#39;t maintain formulae, and none of these numbers exist without that work. The speed comes from how the artifacts are installed, not from what&#39;s in them.</p>\n<p>This is a good read, if you&#39;re interested in what zerobrew is and isn&#39;t: <a href=\"https://nesbitt.io/2026/04/14/standing-on-the-shoulders-of-homebrew.html\" rel=\"nofollow ugc noopener\">Standing on the shoulders of Homebrew</a> by Andrew Nesbitt. It makes the point better than I can.</p>\n<p><strong>nanobrew:</strong></p>\n<p><a href=\"https://github.com/justrach/nanobrew\" rel=\"nofollow ugc noopener\">nanobrew’s</a> published numbers time a “warm install” of a package that is already installed, which is an early exit, not an install, and compare against zerobrew 0.1.0. </p>\n<p>Every number above is a real install from an uninstalled state, with the script and the full log in this repo, so you can run it yourself.</p>\n<h2 id=\"relationship-with-homebrew\">Relationship with Homebrew</h2>\n<p>zerobrew is more of a performance-optimized client for the Homebrew ecosystem. We rely on:</p>\n<ul><li>Homebrew&#39;s formula definitions (homebrew-core)</li><li>Homebrew&#39;s pre-built bottles when available</li><li>Homebrew&#39;s package metadata and infrastructure</li></ul>\n<p>Our innovations focus on:</p>\n<ul><li>Content-addressable storage for deduplication</li><li>APFS clonefiles for zero-overhead copying</li><li>Source build fallback using Homebrew&#39;s Ruby DSL</li></ul>\n<p>zerobrew is experimental. We recommend running it alongside Homebrew rather than as a replacement, and do <em>not</em> \nrecommend purging homebrew and replacing it with zerobrew unless you are absolutely sure about the implications of \ndoing so. </p>\n<h2 id=\"project-status\">Project status</h2>\n<p>&lt;div align=&quot;center&quot;&gt;\n  &lt;a href=&quot;<a href=\"https://star-history.com/#zerobrewhq/zerobrew&amp;Date\" rel=\"nofollow ugc noopener\">https://star-history.com/#zerobrewhq/zerobrew&amp;Date</a>&quot;&gt;\n    &lt;picture&gt;\n      &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;<a href=\"https://api.star-history.com/svg?repos=zerobrewhq/zerobrew&amp;type=Date&amp;theme=dark\" rel=\"nofollow ugc noopener\">https://api.star-history.com/svg?repos=zerobrewhq/zerobrew&amp;type=Date&amp;theme=dark</a>&quot; /&gt;\n      &lt;img alt=&quot;Star History Chart&quot; src=&quot;<a href=\"https://api.star-history.com/svg?repos=zerobrewhq/zerobrew&amp;type=Date\" rel=\"nofollow ugc noopener\">https://api.star-history.com/svg?repos=zerobrewhq/zerobrew&amp;type=Date</a>&quot; /&gt;\n    &lt;/picture&gt;\n  &lt;/a&gt;\n&lt;/div&gt;</p>\n<ul><li><strong>Status:</strong> Experimental, but quite useful. I (<a href=\"https://github.com/cachebag\" rel=\"nofollow ugc noopener\">@cachebag</a>) daily drive it myself.</li><li><strong>Feedback:</strong> If you hit incompatibilities, please open an issue or PR.</li><li><strong>License:</strong> Dual-licensed under Apache 2.0 OR MIT, at your choice. The source build shim is derived from Homebrew and is covered by its BSD 2-Clause license.</li></ul>","headings":[{"level":2,"text":"Install","id":"install"},{"level":2,"text":"Update zerobrew","id":"update-zerobrew"},{"level":2,"text":"Quick start","id":"quick-start"},{"level":2,"text":"Performance snapshot","id":"performance-snapshot"},{"level":2,"text":"A note on how we are achieving these speeds","id":"a-note-on-how-we-are-achieving-these-speeds"},{"level":2,"text":"Relationship with Homebrew","id":"relationship-with-homebrew"},{"level":2,"text":"Project status","id":"project-status"}]}}