NativeLink
Reference

Glossary

The vocabulary you need to read the rest of the docs.

Action

A single unit of build work. Encodes a command line, input file digests, the platform requirements, and the expected outputs. Hashing an action produces a stable identifier; identical actions have identical hashes.

ActionResult

What an action produces. Output file digests, exit code, captured stdout/stderr, timing metadata.

Action Cache (AC)

A keyed store: hash(Action) → ActionResult. Cache hits skip the work entirely.

CAS — Content-Addressable Storage

Stores every blob (source file, intermediate output, final binary) under its SHA-256 hash. The same byte sequence stored from anywhere collapses to one entry.

Digest

A content hash plus a size. Used everywhere instead of file paths.

Hermetic build

A build whose outputs depend only on its declared inputs. Same inputs → same outputs, on any machine, any time. See How do I make my Bazel setup hermetic?.

Instance name

A namespace inside a NativeLink cluster. Action hashes from different instance names never collide. Lets one cluster serve multiple isolated environments.

LRE — Local Remote Execution

NativeLink running on localhost, with a Nix-pinned toolchain, so local builds are bit-identical to remote ones. See LRE.

Platform properties

Key/value tags attached to an action ("this action needs Linux, x86_64, a GPU") and to a worker ("this worker has Linux, x86_64, a GPU"). The scheduler matches them.

Remote Execution API (RE-API)

The standard gRPC protocol every supported build system speaks. Spec.

Scheduler

The dispatcher. Receives Execute calls, picks workers, tracks in-flight actions.

Worker

The process that runs an action. Fetches inputs from CAS, runs the command in a sandbox, uploads outputs to CAS.

Sandbox

The isolated environment a worker runs an action in. On Linux, typically bwrap or landlock; on macOS, sandbox-exec. The sandbox makes hermeticity enforceable.

Toolchain

The bundle of binaries an action needs to run — compiler, linker, standard library, etc. See What are toolchains?.