Skip to main content

clasp_config_defra/
lib.rs

1//! DefraDB-backed CLASP configuration storage.
2//!
3//! Stores router, connection, bridge, and rule configurations in
4//! [DefraDB](https://docs.source.network/defradb), a peer-to-peer document
5//! database built on Merkle CRDTs. This enables:
6//!
7//! - **P2P config sync** between team members via DefraDB's Merkle CRDTs
8//! - **Version history** via DefraDB's Merkle DAG (time-travel queries)
9//! - **Access control** via DID-based owner fields
10//!
11//! # Usage
12//!
13//! ```no_run
14//! use clasp_config_defra::DefraConfigStore;
15//!
16//! # async fn example() -> clasp_config_defra::Result<()> {
17//! let store = DefraConfigStore::new("http://localhost:9181").await?;
18//! let routers = store.list_routers().await?;
19//! # Ok(())
20//! # }
21//! ```
22
23mod convert;
24mod error;
25pub mod policy;
26mod schema;
27mod store;
28mod types;
29
30pub use error::{ConfigDefraError, Result};
31pub use store::DefraConfigStore;
32pub use types::{BridgeConfig, ConfigSnapshot, ConnectionConfig, RouterConfig, RuleConfig};