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 the hermeticity FAQ.

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, uploads outputs to CAS.

Isolation

Keeping an action from seeing state outside its declared inputs. On Linux, workers can isolate actions with kernel namespaces via the use_namespaces and use_mount_namespace worker options, which also reap zombie processes and improve hermeticity. NativeLink doesn't currently integrate external sandboxing tools like bwrap, landlock, or sandbox-exec.

Toolchain

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

On this page