lian-build

炼 — Ephemeral Build Substrate

v0.1.0 | Beta | BuildKit + NATS

Provider-Pluggable OCI Builds

Standalone Rust binary driving ephemeral BuildKit sessions. Callers supply BuildDirectives in NCL; lian-build controls the endpoint, drives buildctl, pushes OCI, and emits NATS lifecycle events. No provider knowledge — compute and registry are plug-in slots.

Adapter Kinds

BuildDirectives.adapter.kind is a closed enum — the only three values that exist.

'local
On-host buildkitd

Runs a pre-flight against BuildSpec resource floor before any buildkitd traffic. Fails fast if the host is under-spec.

'remote
External endpoint + TLS

Externally-supplied buildkitd endpoint plus a SOPS-encrypted TLS bundle. What runs the endpoint is opaque to lian-build.

'fleet
NATS claim → per-claim TLS

Emits a NATS claim against a fleet_ref, receives a per-claim X25519 age TLS grant, builds, releases the claim. Resolves to 'remote internally.

The tetra-build Ecosystem

Four standalone projects connected by NCL directives, NATS subjects, and OCI artifacts — never by library linkage.

forge-fleet

Fleet control plane — claim arbitration daemon + node agent. Provides the ephemeral buildkitd capacity where builds run.

lian-build

Build driver — resolves endpoint, drives buildctl, emits lifecycle events. No provider knowledge.

lamina

Build-layer catalog — toolchain images and cargo-chef pre-cooked dep caches. A caller that supplies BuildDirectives.

solera

Runtime-image catalog — deployable service containers. A caller that builds its images via lian-build.

Hard Constraints

Both rules are grep-checked by ontoref adr validate on every commit.

no-provisioning-lib-import

Cargo.toml and src/ must not import platform-config, provisioning, or stratum-* crates. The lift-out boundary is structural.

build-directives-ncl-vocabulary

src/ must not match provisioning_workspace, vapora_, or woodpecker_. Caller-specific logic stays in caller-supplied directives, not in core.

Technology Stack

Rust 2021 BuildKit gRPC NATS JetStream Nickel NCL SOPS/Age X25519 age axum sysinfo Tera clap

Build substrate for the ecosystem

Rust · BuildKit · NATS · NCL directives · adr-009