xerv-core 0.1.0

Workflow orchestration core: memory-mapped arena, write-ahead log, traits, and type system
Documentation
//! Memory-mapped append-only arena for zero-copy data sharing.
//!
//! The Arena is the core of XERV's data plane. Each trace gets its own
//! arena file (`/tmp/xerv/trace_{uuid}.bin`) where all node outputs are
//! stored. Nodes access data via relative pointers (`RelPtr<T>`) without
//! copying.
//!
//! # Layout
//!
//! ```text
//! ┌─────────────────────────────────────────────────────────────────┐
//! │ Header (fixed size, contains metadata + pipeline config offset) │
//! ├─────────────────────────────────────────────────────────────────┤
//! │ Pipeline Config (rkyv-serialized, read-only after init)         │
//! ├─────────────────────────────────────────────────────────────────┤
//! │ Data Region (append-only node outputs)                          │
//! │ ┌─────────────────────────────────────────────────────────────┐ │
//! │ │ Entry 0: [size: u32][data: bytes]                           │ │
//! │ ├─────────────────────────────────────────────────────────────┤ │
//! │ │ Entry 1: [size: u32][data: bytes]                           │ │
//! │ ├─────────────────────────────────────────────────────────────┤ │
//! │ │ ...                                                          │ │
//! │ └─────────────────────────────────────────────────────────────┘ │
//! └─────────────────────────────────────────────────────────────────┘
//! ```

mod header;
mod writer;

pub use header::ArenaHeader;
pub use writer::{Arena, ArenaConfig, ArenaReader, ArenaWriter};