doublecrypt_core/lib.rs
1//! doublecrypt-core: Encrypted filesystem core library.
2//!
3//! This crate implements a minimal encrypted object-backed filesystem.
4//! All filesystem logic runs on the client side; the backend block store
5//! sees only opaque encrypted blocks.
6//!
7//! # Architecture
8//!
9//! - [`block_store`] – Block store trait and local implementations
10//! - [`cached_store`] – Write-back LRU cache for any `BlockStore`
11//! - [`proto`] – Shared protobuf types for the block-store wire protocol
12//! - [`network_store`] – mTLS network-backed block store *(feature: `network`)*
13//! - [`allocator`] – Slot/block allocator
14//! - [`crypto`] – AEAD encryption engine (ChaCha20-Poly1305)
15//! - [`codec`] – Object serialization/encryption helpers
16//! - [`model`] – Core data types (Inode, DirectoryPage, ExtentMap, etc.)
17//! - [`transaction`] – Copy-on-write commit and root pointer management
18//! - [`fs`] – High-level filesystem operations
19//! - [`ffi`] – C ABI for Swift interop
20//! - [`error`] – Error types
21
22pub mod allocator;
23pub mod block_store;
24pub mod cached_store;
25pub mod codec;
26pub mod crypto;
27pub mod error;
28pub mod ffi;
29pub mod fs;
30pub mod model;
31pub mod transaction;
32
33pub mod network_store;
34pub mod proto;
35
36#[cfg(test)]
37mod tests;
38
39#[cfg(test)]
40mod edge_tests;
41
42#[cfg(test)]
43mod bench_tests;