haematite 0.4.1

Content-addressed, branchable, actor-native storage engine
Documentation
pub mod checkout;
pub mod commit;
pub mod conflict;
pub mod fork;
pub mod handle;
pub mod lifecycle;
pub mod merge;
pub mod persist;
pub mod prune;
pub mod refstore;
pub mod registry;
pub mod snapshot;

pub use checkout::{CheckoutError, ReadOnlyView, checkout};
pub use commit::{
    BranchCommitError, CommitDurability, CommitOutcome, CommitRequest, commit_branch,
};
pub use conflict::{ConflictError, ConflictInput, ConflictPolicy, CustomMergeFn};
pub use fork::{fork, fork_registered, fork_shards, fork_shards_registered};
pub use handle::{BranchError, BranchHandle, ShardId};
pub use lifecycle::{create_branch, fork_at, fork_from, open_branch, remove_branch};
pub use merge::{MergeConflict, MergeError, MergeReport, merge, merge_with_report};
pub use prune::{PruneError, PruneReport, prune};
pub use refstore::{BranchRefError, BranchRefRecord, BranchRefStore, BranchShardRef};
pub use registry::BranchRegistry;
pub use snapshot::{
    CommitLog, CommitLogEntry, SnapshotEntry, SnapshotError, SnapshotRegistry, Timestamp,
    current_timestamp,
};

// LEDGER A1 stage 4: the adversarial test battery (brief §10, §13, §14.3).
// These span several source modules at once — commit ordering vs the ref
// store, prune vs commit, restart recovery — so they live as sibling test
// modules here rather than inside any one source file's `#[path]` include.
#[cfg(test)]
mod barrier_order_tests;
#[cfg(test)]
mod crash_recovery_tests;
#[cfg(test)]
mod crash_support;
#[cfg(test)]
mod crash_window_tests;
#[cfg(test)]
mod hi_proptest;
#[cfg(test)]
mod lease_aba_tests;
#[cfg(test)]
mod prune_interleave_tests;
#[cfg(test)]
mod registry_spy_tests;
#[cfg(test)]
mod restart_e2e_tests;