Skip to main content

Module directoryservice

Module directoryservice 

Source

ModulesΒ§

__mock_MockDirectoryPutter
__mock_MockDirectoryPutter_DirectoryPutter
__mock_MockDirectoryService
__mock_MockDirectoryService_DirectoryService
bigtable πŸ”’ cloud
combinators
directory_graph πŸ”’
Produces a graph of Directory,
failing_putter πŸ”’
from_addr πŸ”’
grpc πŸ”’
object_store πŸ”’
order_validator
redb πŸ”’
simple_putter πŸ”’
traversal

StructsΒ§

BigtableDirectoryServicecloud
Provides a DirectoryService implementation using Bigtable as an underlying K/V store.
BigtableParameterscloud
Represents configuration of BigtableDirectoryService. This currently conflates both connect parameters and data model/client behaviour parameters.
DirectoryGraph
This represents a full (and validated) graph of Directory nodes. It can be constructed using DirectoryGraphBuilder, and is normally used to receive in one or the other insertion order, validate, and then drain in Leaves-To-Root order. If you just want to validate an order without keeping the results, RootToLeavesValidator or LeavesToRootValidator can be used.
DirectoryGraphBuilder
Constructs a DirectoryGraph with a chosen insertion order.
Error
FailingPutter
GRPCDirectoryService
Connects to a (remote) snix-store DirectoryService over gRPC.
GRPCDirectoryServiceConfig
MockDirectoryPutter
Provides a handle to put a closure of connected Directory elements.
MockDirectoryPutter_DirectoryPutter πŸ”’
MockDirectoryService
The base trait all Directory services need to implement. This is a simple get and put of Directory, returning their digest.
MockDirectoryService_DirectoryService πŸ”’
ObjectStoreDirectoryService
Stores directory closures in an object store. Notably, this makes use of the option to disallow accessing child directories except when fetching them recursively via the top-level directory, since all batched writes (using put_multiple_start) are stored in a single object. Directories are stored in a length-delimited format with a 1MiB limit. The length field is a u32 and the directories are stored in root-to-leaves topological order, the same way they will be returned to the client in get_recursive.
ObjectStoreDirectoryServiceConfig
RedbDirectoryService
RedbDirectoryServiceConfig
SimplePutter
This is an implementation of DirectoryPutter that simply inserts individual Directory messages one by one, on close, after they successfully validated.

ConstantsΒ§

GRPC_MAX_DECODING_MESSAGE_SIZE
Maximum size of proto messages endoded and decoded. Unfortunately there’s directories out there larger than 4MiB, so bump this by a bit.

TraitsΒ§

DirectoryPutter
Provides a handle to put a closure of connected Directory elements.
DirectoryService
The base trait all Directory services need to implement. This is a simple get and put of Directory, returning their digest.
DirectoryServiceGraphExt
Extension trait to get a DirectoryGraph from a DirectoryService, and insert into it.

FunctionsΒ§

from_addr
Constructs a new instance of a DirectoryService from an URI.
register_directory_services πŸ”’
Registers the builtin DirectoryService implementations with the registry