Expand description
tvix-simstore implements a simulated Nix store implementation that can be “interacted” with
from tvix-eval. This allows evaluating Nix expressions that use store dependent features
like path interpolation, builtins.derivation etc. without even having the ability to write
to a store let alone build a derivation. This is similar to the dummy:// store implemented
by C++ Nix (>= 2.4).
Nix expressions that do need a functioning store, e.g. for import from derivation (IFD),
will not work. To ensure purity, all reads from the store directory will result in
SimulatedStoreError::StorePathRead, i.e. tvix-simstore won’t access store paths
(i.e. paths below the configured store_dir) since they’d exist only by chance.
Since no uniform store interface has been defined by tvix-eval yet, tvix-simstore consists
of the following components:
SimulatedStoreIOimplements theEvalIOtrait and handles calculation of the store paths for files that would need to be imported into the store.- The necessary additional builtins haven’t been implemented yet.
Modules§
- builtins 🔒