Expand description
§VlogDB
A high-performance embedded key-value database built in pure Rust featuring LSM-tree architecture, ACID transactions with MVCC, and value-log separation.
VlogDB is designed as a storage engine providing multi-writer concurrency and optimized large value handling through value-log separation.
§Quick Start
use vlog_db::{Environment, DatabaseConfig};
// Create environment
let env = Environment::new()
.set_max_dbs(4)
.set_map_size(512 * 1024 * 1024)
.open("./data")?;
// Open database
let db = env.open_db(None)?;
// Basic operations
db.put(b"key1", b"value1")?;
let value = db.get(b"key1")?;
// Transactions
let mut txn = db.begin_transaction()?;
txn.put(b"key2".to_vec(), b"value2".to_vec())?;
txn.commit()?;
§Features
- LSM-Tree + Value Log: WiscKey-inspired architecture for large value optimization
- ACID Transactions: Full ACID with optimistic concurrency control
- MVCC Snapshots: Sequence-based isolation for consistent reads
- Multi-Writer: Concurrent write access with conflict detection
- Pure Rust: Memory-safe implementation with zero-copy operations
Re-exports§
pub use config::DatabaseConfig;
pub use error::Error;
Modules§
Structs§
- Database
- Environment
- Open
Environment - Transaction
- Value
Pointer - Pointer to value stored in value log
- Versioned
Value - MVCC versioned value with metadata
Enums§
- Isolation
Level - Sync
Mode - Value
Type - Internal value type marker
Type Aliases§
- Key
- A key in the database - arbitrary bytes
- Result
- Result type with NovaKV error
- Sequence
Number - MVCC sequence number for ordering operations
- Transaction
Id - Transaction identifier for conflict detection
- Value
- A value in the database - arbitrary bytes