| Crates.io | auradb |
| lib.rs | auradb |
| version | 0.1.0 |
| created_at | 2025-08-16 18:55:53.481767+00 |
| updated_at | 2025-08-16 18:55:53.481767+00 |
| description | High-performance Rust storage engine with WAL-time KV separation, RL-driven compaction, and learned indexes |
| homepage | https://github.com/0xsupremedev/auradb |
| repository | https://github.com/0xsupremedev/auradb |
| max_upload_size | |
| id | 1798771 |
| size | 232,506 |
High-performance Rust storage engine with WAL-time KV separation, RL-driven compaction, and learned indexes
AuraDB is a next-generation storage engine designed to rival and surpass RocksDB in specific workloads by combining three core innovations:
cargo add auradb
use auradb::{AuraEngine, Engine, config::Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create engine with default configuration
let config = Config::default();
let engine = AuraEngine::new(config)?;
// Basic operations
engine.put(b"hello", b"world").await?;
let value = engine.get(b"hello").await?;
println!("Value: {:?}", value);
Ok(())
}
use auradb::config::{Config, WalConfig, ValueLogConfig};
let config = Config {
db_path: "./my_database".to_string(),
wal: WalConfig {
wal_path: "./my_database/wal".to_string(),
sync_policy: 1, // fsync every write
max_size: 64 * 1024 * 1024, // 64MB
},
value_log: ValueLogConfig {
vlog_path: "./my_database/vlog".to_string(),
max_size: 1024 * 1024 * 1024, // 1GB
},
..Default::default()
};
let engine = AuraEngine::new(config)?;
| Value Size | AuraDB | RocksDB | Improvement |
|---|---|---|---|
| 1KB | 2.2M ops/sec | 500K ops/sec | 4.5× faster |
| 8KB | 45K ops/sec | 70K ops/sec | 0.6× slower |
| 64KB | 197K ops/sec | 70K ops/sec | 2.8× faster |
| Value Size | Expected Performance | Improvement |
|---|---|---|
| 1KB | 2.2M ops/sec | ✅ Already optimal |
| 8KB | 45K ops/sec | ✅ Already optimal |
| 64KB | 250K+ ops/sec | 5-7× faster than RocksDB |
Client API (KV + optional SQL-ish ops)
└── Router (point/scan/batch/txn)
├── Txn/TSO (optional MVCC)
├── Read Path
│ ├── Learned Index Tier (+ fallback)
│ ├── Block Cache (+ Bloom/Ribbon filters)
│ └── SST Manager (point/range reads)
└── Write Path
├── WAL-time KV Separation (KV router)
│ ├── WAL (keys + meta only)
│ └── Value Log (separate big values)
├── Memtable(s) (skiplist/ART)
└── Flush & SST Builder
AuraDB includes a comprehensive benchmarking suite:
# Basic performance test
cargo run --release --bin benchmark -- --operations 100000
# Full-spectrum analysis
cargo run --release --bin full_benchmark
# YCSB workload testing
cargo run --release --bin ycsb_benchmark -- --workload A --operations 50000
# RocksDB comparison
cargo run --release --bin rocksdb_comparison -- --value-size 65536
# Complete YCSB suite
cargo run --release --bin run_all_ycsb_workloads
We welcome contributions! Please see our Contributing Guide for details.
git clone https://github.com/0xsupremedev/auradb.git
cd auradb
cargo build
cargo test
cargo run --release --bin benchmark
This project is licensed under either of
at your option.
Built with ❤️ in Rust - GitHub | Issues | Discussions