15 breaking releases

Uses new Rust 2024

new 0.16.0 Nov 5, 2025
0.14.0 Sep 19, 2025
0.11.0 Jun 23, 2025
0.5.0 Mar 19, 2025
0.1.0 Oct 16, 2024

#1252 in Authentication

Download history 997/week @ 2025-07-16 952/week @ 2025-07-23 968/week @ 2025-07-30 1336/week @ 2025-08-06 473/week @ 2025-08-13 481/week @ 2025-08-20 117/week @ 2025-08-27 142/week @ 2025-09-03 151/week @ 2025-09-10 1623/week @ 2025-09-17 1513/week @ 2025-09-24 1655/week @ 2025-10-01 1018/week @ 2025-10-08 1855/week @ 2025-10-15 2264/week @ 2025-10-22 1531/week @ 2025-10-29

7,123 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

~23–38MB
~612K SLoC