ndn_sync/
lib.rs

1//! NDN dataset synchronisation protocols.
2//!
3//! Provides both the low-level data structures ([`svs::SvsNode`], [`psync::PSyncNode`])
4//! and the high-level network protocol layer ([`svs_sync::join_svs_group`]) that
5//! wires them to actual Interest/Data exchange.
6//!
7//! # Architecture
8//!
9//! ```text
10//! Application
11//!   └── SyncHandle (recv updates, publish names)
12//!         └── svs_sync / psync_sync (background task)
13//!               └── SvsNode / PSyncNode (pure data structure)
14//! ```
15
16#![allow(missing_docs)]
17
18/// Sync protocol abstraction — [`SyncHandle`](protocol::SyncHandle),
19/// [`SyncUpdate`](protocol::SyncUpdate), [`SyncError`](protocol::SyncError).
20pub mod protocol;
21
22/// State Vector Sync (SVS) — pure data structure.
23pub mod svs;
24
25/// SVS network protocol — wires `SvsNode` to Interest/Data exchange.
26pub mod svs_sync;
27
28/// Partial Sync (PSync) — IBF-based dataset synchronisation (pure data structure).
29pub mod psync;
30
31/// PSync network protocol — wires `PSyncNode` + `Ibf` to Interest/Data exchange.
32pub mod psync_sync;
33
34pub use protocol::{SyncError, SyncHandle, SyncUpdate};
35pub use psync_sync::{PSyncConfig, join_psync_group};
36pub use svs_sync::{RetryPolicy, SvsConfig, fetch_with_retry, join_svs_group};