xerv_core/
lib.rs

1//! XERV Core Library
2//!
3//! This crate provides the foundational types, traits, and implementations
4//! for the XERV orchestration platform.
5//!
6//! # Overview
7//!
8//! XERV (Executable Server) is a zero-copy, event-driven orchestration platform
9//! that bridges visual automation with systems engineering.
10//!
11//! # Key Components
12//!
13//! - **Arena**: Memory-mapped append-only storage for zero-copy data sharing
14//! - **WAL**: Write-Ahead Log for durability and crash recovery
15//! - **Types**: Strongly-typed identifiers and pointers
16//! - **Traits**: Core abstractions for nodes, triggers, and schemas
17//!
18//! # Example
19//!
20//! ```ignore
21//! use xerv_core::prelude::*;
22//!
23//! // Create an arena for a trace
24//! let trace_id = TraceId::new();
25//! let config = ArenaConfig::default();
26//! let arena = Arena::create(trace_id, &config)?;
27//!
28//! // Write data
29//! let ptr = arena.write(&MyData { value: 42 })?;
30//!
31//! // Read data back (zero-copy)
32//! let archived = arena.read(ptr)?;
33//! ```
34
35#![warn(missing_docs)]
36#![warn(clippy::all)]
37
38pub mod arena;
39pub mod error;
40pub mod flow;
41pub mod logging;
42pub mod prelude;
43pub mod schema;
44// Testing module must be declared before traits because traits/context.rs uses testing providers
45pub mod testing;
46pub mod traits;
47pub mod types;
48pub mod value;
49pub mod wal;
50
51// Re-export key types at crate root for convenience
52pub use arena::{Arena, ArenaConfig};
53pub use error::{Result, XervError};
54pub use flow::{EdgeDefinition, FlowDefinition, FlowSettings, NodeDefinition, TriggerDefinition};
55pub use traits::{Node, NodeInfo, PipelineConfig, Schema, Trigger, TriggerType};
56pub use types::{ArenaOffset, NodeId, RelPtr, TraceId};
57pub use value::Value;
58pub use wal::{Wal, WalConfig};