Skip to main content

clasp_journal/
lib.rs

1//! Event log and state persistence for CLASP routers.
2//!
3//! Provides append-only journal storage for all state mutations,
4//! enabling crash recovery, state replay, and federation sync.
5//!
6//! # Backends
7//!
8//! - [`MemoryJournal`] -- in-memory ring buffer for dev/testing
9//! - [`SqliteJournal`] -- persistent SQLite storage (requires `sqlite` feature)
10//! - `DefraJournal` -- DefraDB P2P backend via Merkle CRDTs (see `clasp-journal-defra` crate)
11
12pub mod entry;
13pub mod error;
14pub mod journal;
15pub mod memory;
16
17#[cfg(feature = "sqlite")]
18pub mod sqlite;
19
20// Re-exports
21pub use entry::{JournalEntry, ParamSnapshot};
22pub use error::{JournalError, Result};
23pub use journal::Journal;
24pub use memory::MemoryJournal;
25
26#[cfg(feature = "sqlite")]
27pub use sqlite::{BatchingSqliteJournal, SqliteJournal};