Crate vlog_db

Crate vlog_db 

Source
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§

config
Database configuration defaults and builder.
error

Structs§

Database
Environment
OpenEnvironment
Transaction
ValuePointer
Pointer to value stored in value log
VersionedValue
MVCC versioned value with metadata

Enums§

IsolationLevel
SyncMode
ValueType
Internal value type marker

Type Aliases§

Key
A key in the database - arbitrary bytes
Result
Result type with NovaKV error
SequenceNumber
MVCC sequence number for ordering operations
TransactionId
Transaction identifier for conflict detection
Value
A value in the database - arbitrary bytes