Open source · Apache 2.0

Build once,
cache forever.

Build Docker containers once, share the cache, never rebuild the same layer twice. Up to 35,000x faster rebuilds. (431x end-to-end, 35,000x cache engine — see benchmarks)

View on GitHub
curl -fsSL https://zuild.dev/install.sh | sh
terminal

$ zuild -f Dockerfile . -t my-app

⚡ Zuild — Build once, cache forever.

  [1/8] ✓ cached FROM ubuntu:24.04

  [2/8] ✓ cached RUN apt-get install -y curl wget vim git...

  [3/8] ✓ cached RUN useradd -m -s /bin/bash developer

  [4/8] ✓ cached ENV LANG=C.UTF-8

  [5/8] ✓ cached ENV TERM=xterm-256color

  [6/8] ✓ cached WORKDIR /home/developer

  [7/8] ⚡ building COPY hello.txt /home/developer/hello.txt

  [8/8] ⚡ buildingCMD ["/bin/bash"]

  ✔ Built in 0.005s

  140 seconds of apt-get install skipped. One file changed.

Features

Shared Cache

One developer builds, the whole team benefits. Layers are shared via a simple HTTP server. No more cold caches on CI.

35,000x Faster Rebuilds

Content-addressable blake3 hashing. Same instruction + same files = instant cache hit. Zero rebuilds.

Secure by Default

Sandboxed builds, path traversal protection, ed25519-signed layers, API key auth, rate limiting. Security isn't an afterthought.

Full Dockerfile support

Multi-stage builds.dockerignoreARG / ENV--build-argSingle binary, no daemon

How it works

Dockerfile instruction
        |
        v
┌─────────────────┐
│  blake3 hash    │──> hash = f(parent + instruction + files)
└────────┬────────┘
         |
         v
┌────────────────┐    ┌───────────────┐    ┌────────────────┐
│  Local cache   │───>│ Remote cache  │───>│  Build step    │
│  ~/.zuild/     │    │ team server   │    │  (via Docker)  │
└────────────────┘    └───────────────┘    └────────────────┘
     HIT = 0ms          HIT = ~50ms          MISS = build
                                              + cache result

Benchmarks

ScenarioCold BuildWarm BuildSpeedup
Ubuntu + 17 packages (end-to-end)135.5s0.314s431x
Ubuntu + 17 packages (cache engine)135.5s0.004s35,000x
Single file change0.005s

Real benchmarks on Apple Silicon, measured with time

Get started in seconds

Single binary. No daemon. No dependencies.

$ curl -fsSL https://zuild.dev/install.sh | sh

or cargo install zuild · GitHub