VarveDB
VarveDB is a high-performance, embedded, append-only event store for Rust, powered by LMDB (via heed) and rkyv.
It is designed for event sourcing, offering strongly-typed events, zero-copy deserialization, and optimistic concurrency control.
Features
- Append-Only Log: Immutable event history.
- Strongly Typed: Events and metadata are defined by user structs.
- Zero-Copy: Efficient access using
rkyv. - Optimistic Concurrency:
ExpectedVersionsupport for safer writes. - Embedded: Runs in-process, no external server required.
Getting Started
Add varvedb to your Cargo.toml.
[]
= "0.2.1"
= "0.7" # Check version compatibility
= { = "1.0", = ["derive"] }
Basic Usage
use ;
use MetadataExt;
use ;
Architecture
- Varve: The main facade for interacting with the database.
- Storage: Manages the LMDB environment.
- Processor: A framework for consuming events and tracking progress.
License
Mozilla Public License 2.0