Module tvix_store::pathinfoservice
source · Modules§
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.
- 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.
- SledPathInfoService stores PathInfo in a sled.
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