#database #key-value #embedded-database #lsm-tree #storage-engine

aeternusdb

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

3 releases (stable)

Uses new Rust 2024

1.0.1 Feb 20, 2026
0.1.0 Oct 26, 2025

#52 in Database implementations

MIT license

1MB
18K SLoC

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.

Dependencies

~5–7.5MB
~65K SLoC