Crate tvix_simstore

Source
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:

  • SimulatedStoreIO implements the EvalIO trait 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 🔒

Structs§

SimulatedStoreIO

Enums§

SimulatedStoreError

Functions§

pack_entries 🔒
pack_entries_dir 🔒
path_to_name 🔒
simulated_store_builtins