Module pathinfoservice

Source

Re-exportsΒ§

pub use crate::path_info::PathInfo;

ModulesΒ§

bigtable πŸ”’
cache πŸ”’
from_addr πŸ”’
fs πŸ”’
grpc πŸ”’
lru πŸ”’
memory πŸ”’
nix_http πŸ”’
redb πŸ”’
signing_wrapper πŸ”’
This module provides a PathInfoService implementation that signs narinfos

StructsΒ§

BigtableParameters
Represents configuration of BigtablePathInfoService. This currently conflates both connect parameters and data model/client behaviour parameters.
BigtablePathInfoService
Provides a PathInfoService implementation using Bigtable as an underlying K/V store.
CachePathInfoService
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.
CachePathInfoServiceConfig
GRPCPathInfoService
Connects to a (remote) snix-store PathInfoService over gRPC.
GRPCPathInfoServiceConfig
KeyFileSigningPathInfoServiceConfig
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).
LruPathInfoService
LruPathInfoServiceConfig
MemoryPathInfoService
MemoryPathInfoServiceConfig
NixHTTPPathInfoService
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 Snix 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.
NixHTTPPathInfoServiceConfig
RedbPathInfoService
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.
RedbPathInfoServiceConfig
SigningPathInfoService
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Β§

PathInfoService
The base trait all PathInfo services need to implement.

FunctionsΒ§

from_addr
Constructs a new instance of a PathInfoService from an URI.
make_fs
Helper to construct a SnixStoreFs 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 SnixStoreFS.
register_pathinfo_services πŸ”’
Registers the builtin PathInfoService implementations with the registry