Expand description
The Aranya runtime.
§Overview
The runtime crate is the starting point for integrating with Aranya.
The runtime provides a higher level interface to:
- An
Engineresponsible for enforcing aPolicyon graphCommands. - A
StorageProviderresponsible for providing a storage mechanism for graph commands. - A
syncinterface responsible for syncing graph state between peers.
§Usage
Refer to provided demo/quickstart code for an example of how to use the runtime crate.
The quic_syncer.rs module provides a good example of syncing via QUIC.
§Example
Start by initializing a client with desired Engine and StorageProvider
ⓘ
let client = ClientState::new(engine, storage)Initialize graph for the client with:
ⓘ
client.new_graph(...)Start listening for incoming sync requests with:
ⓘ
sync::run_syncer(...)To initiate a sync with another peer, construct a SyncRequester
and send the sync request to the peer via the Aranya transport:
ⓘ
SyncRequester::new(...)
sync::sync(...)Re-exports§
pub use crate::command::*;pub use crate::engine::*;pub use crate::storage::*;pub use crate::sync::*;pub use crate::vm_policy::*;
Modules§
- Interfaces for an application to begin a runtime.
- Interface for collecting runtime metrics.
- Interfaces for graph storage.
- Interface for syncing state between clients.
Macros§
- Creates a
VmAction. - Creates a
VmEffectData.
Structs§
- Keeps track of client graph state.
- Ephemeral session used to handle/generate off-graph commands.
- Transaction used to receive many commands at once.
Enums§
- An error returned by the runtime client.
- Refer to immediately prior commands in a graph, usually via
Prior<CommandId>orPrior<Location>.
Functions§
- Enforces deterministic ordering for a set of
Commands in a graph. Returns the ordering.