lumendb

Crates.iolumendb
lib.rslumendb
version0.1.0
created_at2025-12-31 03:55:19.010036+00
updated_at2025-12-31 03:55:19.010036+00
descriptionA high-performance, RocksDB-compatible key-value store optimized for blockchain data access patterns
homepage
repositoryhttps://github.com/lumen-link/lumendb
max_upload_size
id2013868
size371,484
Kureha (balovess)

documentation

README

LumenDB

A high-performance key-value store optimized for blockchain data access patterns, inspired by Bitcask and RocksDB.

Features

  • High Performance: Optimized for read-heavy workloads and sequential writes
  • Column Families: Support for multiple column families, similar to RocksDB
  • ACID Transactions: Full ACID compliance for transactional operations
  • Batch Writes: Atomic batch write operations for improved performance
  • Background Compaction: Automatic background compaction to reclaim disk space
  • HINT Files: Fast startup with hint files for index recovery
  • MMAP Support: Memory-mapped files for efficient reads
  • Blockchain Optimized: Tailored for blockchain data patterns with large values and frequent updates

Installation

Add LumenDB to your Cargo.toml:

[dependencies]
lumendb = "0.1.0"

Quick Start

use lumendb::LumenDB;

fn main() -> Result<(), anyhow::Error> {
    // Open a database with two column families
    let db = LumenDB::new("/tmp/test.db", &["default", "users"])?;

    // Write data to a column family
    db.put_cf("users", b"user:123", b'{"name": "Alice", "age": 30}')?;

    // Read data from a column family
    let value = db.get_cf("users", b"user:123")?;
    println!("User: {:?}", value);

    // Delete data
    db.del_cf("users", b"user:123")?;

    Ok(())
}

Documentation

Roadmap

  • Support for range scans with proper iteration
  • Enhanced compaction strategies
  • Encryption at rest
  • Replication support
  • Snapshot isolation
  • Async API support
  • Better support for large datasets

License

LumenDB is licensed under the Apache License 2.0.

Commit count: 0

cargo fmt