Open Source Tools
Open source tools from DAGZ for CI observability and build acceleration.
Source: github.com/autodag-dev/opendagz
zb time: Process Tree Profiler
A time(1) replacement that traces the entire process tree with per-process CPU, memory, I/O, and thread metrics.
Useful for understanding complex build systems.
You see every spawned process nested by parent/child, aggregated stats per executable, and a summary line like time(1).
zb time make -j16
zb time --output trace.txt pytest --dagz
Example output (CPython build):
├─#935 00:00:23.616 0.365s 0.6%cpu 42 MB [rc=0] gcc -fPIC ...
│ ├─#936 00:00:23.617 0.342s 98.0%cpu 42 MB [rc=0] cc1 -quiet ...
│ └─#937 00:00:23.963 0.017s 76.6%cpu 5 MB [rc=0] as ...
Group by command (most cpu-intensive last):
0.002s 79.4%cpu 6 MB avg rm
2.639s 81.1%cpu 13 MB avg /usr/bin/ld
245.634s 97.2%cpu 56 MB avg cc1
make: 969 commands 30.233s 896.5%cpu Exited 0
Uses ptrace(2).
No LD_PRELOAD, no wrappers injected into the build.
Linux only. macOS in progress.
cargo-zb: Cargo Build Cache
A drop-in cargo wrapper that caches entire build outputs.
On cache hit, restores all artifacts via copy_file_range(2).
No recompilation, no per-crate overhead.
cargo zb --release
Benchmarks
| Project | Files | Size | sccache | cargo-zb | Speedup |
|---|---|---|---|---|---|
| ripgrep | 335 | 213 MiB | 6.3s | 0.17s | 37x |
| reqwest | 1257 | 222 MiB | 6.4s | 0.23s | 28x |
Why it's fast
- Whole-build caching. sccache wraps each
rustcinvocation (process spawn + tokio runtime + daemon RPC per crate). cargo-zb hashes the entire unit graph upfront and does a single cache lookup. - Zero-copy restore. Uses
copy_file_range(2)to write cached files directly from page cache to disk. - No binary gap. sccache doesn't cache binary crates. cargo-zb caches everything.
- Cargo as a library. No wrapper processes. Resolves the unit graph and computes cache keys in-process.
Linux only.
Install
Download
Via Cargo
cargo install opendagz # zb time
cargo install cargo-zb # cargo-zb
License
AGPL-3.0. For commercial licensing, contact [email protected].