Azazel

Azazel is a deterministic build-model layer for Zig. CUE validates project intent, Azazel emits typed Zig build data, and std.Build remains the executor. The production support contract lives in PRODUCTION.md.

The problem

Zig makes its build system programmable, which is powerful but can mix project configuration with version-specific std.Build compatibility code. Azazel separates those responsibilities.

project.cue says what the project contains. schema.cue constrains that model. export.cue resolves the public build graph. gen_build_spec.sh emits typed Zig source. build.zig translates the result onto the supported Zig build APIs.

The result is a stable, machine-readable project model that can be validated, inspected, diffed, consumed by tooling, and replayed across supported Zig lanes. Azazel does not replace Zig as the build executor; it is a configuration/IR and compatibility layer over it.