Versioned reads
Caller-supplied logical timestamps select the visible committed version.
Open source ยท MIT or Apache-2.0
nexir-mvcc is a standalone, deterministic Rust library for versioning, intents, guarded writes, atomic batches, and history retention. Nexir uses it as part of the database's storage stack.
Clear boundary
The core owns deterministic MVCC semantics. Adapters own durability, crash atomicity, scheduling, consensus, command parsing, metrics, and network services.
Caller-supplied logical timestamps select the visible committed version.
Prewrite, commit, and abort single- or multi-key write sets.
Apply direct or compare-and-swap guarded batches in one round trip.
Backend contracts cover all-or-nothing write sets and deterministic ordering.
Retain history with caller-controlled safe points, cursors, and work budgets.
Test custom backend implementations against the logical contract.
Use independently
Backend trait for your storage engine.MvccEngine.use nexir_mvcc::{
InMemoryBackend, MvccEngine,
PhysicalWrite, Timestamp,
};
let mut db = MvccEngine::new(
InMemoryBackend::new()
);
db.apply_direct_batch(
Timestamp(10),
vec![PhysicalWrite {
key: b"config".to_vec(),
value: Some(b"v1".to_vec()),
}],
)?;
let value = db.read(b"config", Timestamp(15))?;git clone https://github.com/nexirdb/nexir-mvcc-core.git
cd nexir-mvcc-core
cargo test --all-features
cargo doc --no-deps --all-featuresCurrent crate requirements: Rust 1.91 and edition 2024. The library is published on crates.io as nexir-mvcc from the nexir-mvcc-core repository; Nexir 0.1.0-beta.3 ships nexir-mvcc 0.3.0.
The repository declares MIT OR Apache-2.0, at the user's option, with both license texts and Apache notice information included.
This open-source license applies to the nexir-mvcc crate, not to the complete Nexir database binary.