:::{glossary}
builder program
The program run in a {term}derivation.
Sometimes shortened to "builder".
derivation
A build step.
A description of a program to run — called a {term}builder program —
to produce files.
Derivations can depend on the results of other derivations.
Derivations are created with the {lua:func}derivation built-in function.
See the Derivation Specification for a full reference.
store directory
A collection of build artifacts and source files,
each of which is called a {term}store object.
The conventional store directory is:
/opt/zb/storeon Linux and macOSC:\zb\storeon Windows
store object
A file, directory, or symbolic link that is an immediate child of the {term}store directory.
store path
An absolute filesystem path of a {term}store object.
See the page on Store Paths for a full reference.
realization
A mapping from {term}derivation output to a {term}store path.
See the Realizations Binary Cache Specification
for the details of the data model.
Realization can also refer to the process of producing store objects
for a set of derivation outputs —
the process started by a zb build command.
While this is sometimes called "building",
realization may not involve running builder programs:
in the case of a fully cached realization,
realization would only obtain store objects from the local store and remote stores
based on previous known realizations (mappings).
system value
system triple
The system value of a {term}derivation is used to specify a class of machines that can execute the derivation's {term}builder <builder program>.
The format is intentionally compatible with LLVM target triples
(which are, in turn, similar to GCC target triples).
system values are a hyphen-separated collection of architecture, vendor, operating system, and environment components.
Common values include:
x86_64-unknown-linuxfor Linux running on a 64-bit Intel CPUaarch64-apple-macosfor macOS running on a 64-bit ARM processor (Apple Silicon)x86_64-pc-windowsfor Windows running on a 64-bit Intel CPU
The full syntax of a system value is defined in system values specification.
Nix Archive NAR The Nix Archive (NAR) format is a binary format for serializing files, directories, and symbolic links. The format has a single, canonical representation of file contents: it excludes file times, excludes permission bits other than executable on regular files, and has a well-defined directory listing order.
Nix Base-32
Nix uses a base-32 binary-to-text encoding for hashes and store paths.
This encoding uses a custom alphabet and is not compliant with {rfc}4648.
The exact algorithm is specified in
The Purely Functional Software Deployment Model Page 97.
For compatibility, zb also uses this encoding.
:::