aeternusdb 1.0.1

An embeddable, persistent key-value store built on an LSM-tree architecture.
Documentation

AeternusDB

CI Bench Docs Audit codecov License: MIT

An embeddable, persistent key-value storage engine built on a Log-Structured Merge Tree (LSM-tree) architecture. Written in pure Rust with a focus on durability, crash safety, and correctness.

Aeternus — Latin for eternal, everlasting. A fitting name for a database engine designed to preserve data durably across crashes and restarts.

Quick Start

use aeternusdb::{Db, DbConfig};

let db = Db::open("/tmp/my_db", DbConfig::default()).unwrap();

db.put(b"hello", b"world").unwrap();
assert_eq!(db.get(b"hello").unwrap(), Some(b"world".to_vec()));

db.delete(b"hello").unwrap();
assert_eq!(db.get(b"hello").unwrap(), None);

db.close().unwrap();

Features

  • Write-ahead logging — every mutation is persisted before acknowledgement
  • Automatic background compaction — size-tiered compaction with minor, tombstone, and major passes
  • Point and range deletes — efficient tombstone-based deletion semantics
  • Bloom filter lookups — fast negative lookups on SSTables
  • CRC32 integrity — all on-disk blocks are checksummed
  • Crash recovery — automatic recovery from WAL on restart

Documentation

Document Description
Architecture High-level design, data flow, concurrency model, and configuration reference
Getting Started Build, test, usage guide, and local development
WAL Write-ahead log format, guarantees, and recovery
Memtable In-memory write buffer, multi-version storage, and flush semantics
SSTable On-disk sorted table format, block layout, and read/write process
Manifest Metadata persistence, WAL + snapshot model, and crash safety
Compaction Size-Tiered Compaction Strategy (STCS) — minor, tombstone, and major
Encoding Custom binary encoding format, wire layout, safety limits, and type support
Benchmarking How to run, read, and profile Criterion micro-benchmarks and YCSB workloads
Changelog Release history and feature notes

API Reference (rustdoc): kamil-kielbasa.github.io/aeternusdb

Benchmark Reports (Criterion): kamil-kielbasa.github.io/aeternusdb/criterion/report

Build & Test

cargo build
cargo test --lib                     # unit tests
cargo test --lib -- --ignored        # stress tests
cargo bench                          # performance benchmarks
cargo doc --no-deps --open           # local API docs

Contact

📧 kamkie1996@gmail.com

License

MIT — see LICENSE.