2 unstable releases
new 0.2.0 | Dec 4, 2024 |
---|---|
0.1.0 | Oct 16, 2024 |
#15 in #aranya
199 downloads per month
Used in 3 crates
(2 directly)
2.5MB
26K
SLoC
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 aPolicy
on graphCommand
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(...)
Dependencies
~16–27MB
~432K SLoC