The Aranya runtime.
Overview
The runtime crate is the starting point for integrating with Aranya.
The runtime provides a higher level interface to:
- An [
Engine] responsible for enforcing a [Policy] on graph [Command]s. - A [
StorageProvider] responsible for providing a storage mechanism for graph commands. - A [
sync] interface 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(...)