aranya-runtime 0.14.0

The Aranya core runtime
Documentation

The Aranya runtime.

Overview

The runtime crate is the starting point for integrating with Aranya.

The runtime provides a higher level interface to:

  1. An [Engine] responsible for enforcing a [Policy] on graph [Command]s.
  2. A [StorageProvider] responsible for providing a storage mechanism for graph commands.
  3. 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(...)