3 releases (stable)
Uses new Rust 2024
| 1.0.1 | Feb 20, 2026 |
|---|---|
| 0.1.0 | Oct 26, 2025 |
#52 in Database implementations
1MB
18K
SLoC
AeternusDB
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
License
MIT — see LICENSE.
Dependencies
~5–7.5MB
~65K SLoC