shunyadb 0.1.0

A correctness-first embedded storage engine written in Rust, built around WAL, immutable LSM pages, MVCC, and deterministic crash recovery.
Documentation
use tempfile::tempdir;
use shunyadb::engine::engine::Engine;
use std::collections::BTreeMap;
use shunyadb::storage::record::FieldValue;

#[test]
fn writes_trigger_flush_reasonably() -> anyhow::Result<()> {
    let dir = tempdir()?;
    let mut engine = Engine::open(dir.path())?;

    let writes = 2000;

    for i in 0..writes {
        let mut map = BTreeMap::new();
        map.insert("value".to_string(), FieldValue::Str(i.to_string()));
        engine.put(i.to_string(), map)?;
    }

    assert!(
        engine.metrics.flushes > 0,
        "writes should trigger memtable flushes"
    );

    assert!(
        engine.metrics.wal_appends >= writes as u64,
        "each write should append to WAL"
    );

    Ok(())
}