5 releases (breaking)
0.5.0 | Mar 19, 2025 |
---|---|
0.4.0 | Mar 12, 2025 |
0.3.0 | Dec 19, 2024 |
0.2.0 | Dec 4, 2024 |
0.1.0 | Oct 16, 2024 |
#305 in Authentication
4,203 downloads per month
Used in 2 crates
770KB
18K
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
~20–32MB
~501K SLoC