Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

zut is built from source with the Zig toolchain. There are no other build-time dependencies — the TLS stack, the S3/GCS protocol clients, and the sandbox are all implemented in-tree.

Prerequisites

  • Zig 0.16.0 (exactly — zut tracks the 0.16 std.Io API). Get it from ziglang.org/download.
  • Linux for the strong sandbox tiers (user namespaces and/or Landlock). Other platforms build and run, but fall back to a weaker preparation-only sandbox.
  • Optional, for building Rust/Zig targets: a host rustc/cargo and/or zig. zut discovers them at runtime; they are not needed to build zut itself.

Build

$ git clone https://github.com/Sh4d1/zut
$ cd zut
$ zig build               # debug build → zig-out/bin/zut
$ zig build -Doptimize=ReleaseFast   # optimized build

The binary lands at zig-out/bin/zut. Put it on your PATH, or run it through the build system:

$ zig build run -- build //:hello

Run the tests

$ zig build test --summary all

This runs the unit-test suite plus the namespace/Landlock sandbox smoketests (which fork real processes, so they live outside the in-process test harness).

Verify it works

$ zig-out/bin/zut
zut 0.0.0-dev — a hermetic, incremental build system (digest: blake3, REAPI #9)

Commands:
  build   build a target and materialize its outputs into ./zut-out/
  test    build a target and run its test binary (a cached action)
  fetch   download crates.io deps into the CAS + generate //crates/BUILD

Run `zut help` for details.

Next: write your first build.