Module tvix_store::pathinfoservice
source · Re-exports§
pub use crate::path_info::PathInfo;
Modules§
- bigtable π
- combinators π
- from_addr π
- fs π
- grpc π
- lru π
- memory π
- nix_http π
- redb π
- signing_wrapper πThis module provides a PathInfoService implementation that signs narinfos
Structs§
- Represents configuration of BigtablePathInfoService. This currently conflates both connect parameters and data model/client behaviour parameters.
- Provides a PathInfoService implementation using Bigtable as an underlying K/V store.
- Asks near first, if not found, asks far. If found in there, returns it, and inserts it into near. There is no negative cache. Inserts and listings are not implemented for now.
- Connects to a (remote) tvix-store PathInfoService over gRPC.
- ServiceBuilder implementation that builds a SigningPathInfoService that signs narinfos using a keyfile. The keyfile is parsed using parse_keypair, the expected format is the nix one (
nix-store --generate-binary-cache-key
for more informations). - NixHTTPPathInfoService acts as a bridge in between the Nix HTTP Binary cache protocol provided by Nix binary caches such as cache.nixos.org, and the Tvix Store Model. It implements the PathInfoService trait in an interesting way: Every PathInfoService::get fetches the .narinfo and referred NAR file, inserting components into a BlobService and DirectoryService, then returning a PathInfo struct with the root.
- PathInfoService implementation using redb under the hood. redb stores all of its data in a single file with a K/V pointing from a pathβs output hash to its corresponding protobuf-encoded PathInfo.
- PathInfoService that wraps around an inner PathInfoService and when put is called it extracts the underlying narinfo and signs it using a SigningKey. For the moment only the ed25519::signature::Signered25519::Signature is available using a keyfile (see KeyFileSigningPathInfoServiceConfig for more informations). However the implementation is generic (see nix_compat::narinfo::SigningKey documentation).
Traits§
- The base trait all PathInfo services need to implement.
Functions§
- Constructs a new instance of a PathInfoService from an URI.
- Helper to construct a TvixStoreFs from a BlobService, DirectoryService and PathInfoService. This avoids users to have to interact with the wrapper struct directly, as it leaks into the type signature of TvixStoreFS.
- Registers the builtin PathInfoService implementations with the registry