7 releases (breaking)

new 0.7.0 Apr 21, 2025
0.6.0 Apr 10, 2025
0.5.0 Mar 19, 2025
0.4.0 Mar 12, 2025
0.1.0 Oct 16, 2024

#540 in Authentication

Download history 653/week @ 2025-01-03 224/week @ 2025-01-10 106/week @ 2025-01-17 379/week @ 2025-01-24 479/week @ 2025-01-31 340/week @ 2025-02-07 213/week @ 2025-02-14 41/week @ 2025-02-21 532/week @ 2025-02-28 1137/week @ 2025-03-07 1135/week @ 2025-03-14 1096/week @ 2025-03-21 1219/week @ 2025-03-28 643/week @ 2025-04-04 1213/week @ 2025-04-11 2062/week @ 2025-04-18

5,484 downloads per month
Used in 2 crates

AGPL-3.0-only

1MB
20K SLoC

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 Commands.
  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(...)

Dependencies

~18–30MB
~481K SLoC