#btree-map #sanakirja

bin+lib snkrj

A simple wrapper around Sanakirja's database that acts as a very fast on disk BTreeMap

2 releases

new 0.1.1 Dec 14, 2024
0.1.0 Dec 14, 2024

#563 in Database interfaces

Download history 210/week @ 2024-12-11

210 downloads per month

MIT license

11KB
208 lines

snkrj

A simple wrapper around Sanakirja aatabase that acts as a very fast on disk BTreeMap.

Example

use snkrj::{AnyDatabase, Database};

fn main() {
    let path = std::env::temp_dir().join("./db");

    let database: Database<i32, i32> = Database::open(path.clone()).unwrap();
    let _ = database.destroy();

    let mut database: Database<i32, i32> = Database::open(path.clone()).unwrap();
    database.insert(64, 128);
    database.export(false).unwrap();

    let mut database: Database<i32, i32> = Database::open(path).unwrap();
    database.insert(1, 2);
    database.insert(128, 256);
    println!("iter_ram:");
    database.iter_ram().for_each(|pair| {
        println!("{:?}", pair);
    });
    println!("iter_disk:");
    database.iter_disk().for_each(|pair| {
        println!("{:?}", pair.unwrap());
    });
    println!("iter_ram_then_disk:");
    database.iter_ram_then_disk().for_each(|pair| {
        println!("{:?}", pair);
    });
    database.export(false).unwrap();
}

Dependencies

~1.2–2.1MB
~42K SLoC