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.IoAPI). 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/cargoand/orzig. 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.