Crate siamesedb[−][src]
Expand description
The simple local key-value store.
Features
- key-value store.
- in-memory and file store.
DbMapStringhas keys as utf-8 string.DbMapU64has keys as u64.- The value is any bytes included utf-8 string.
- The file store is implemented the basic B-Tree. (no hash and no leaf)
- Small db file size.
- Separated files. (data record file and index file)
- One database has some db-map-string and some db-map-u64.
- minimum support rustc 1.54.0 (a178d0322 2021-07-26)
Compatibility
- Nothing?
Examples
Example DbMapString:
use siamesedb::DbMapString;
fn main() -> std::io::Result<()> {
let db_name = "target/tmp/doc-test1.shamdb";
// remove database
let _ = std::fs::remove_dir_all(db_name);
// create or open database
let db = siamesedb::open_file(db_name)?;
// create or get db map
let mut db_map = db.db_map_string("some_map1")?;
//
let r = db_map.get_string("key1")?;
assert_eq!(r, None);
db_map.put_string("key1", "value1")?;
let r = db_map.get_string("key1")?;
assert_eq!(r, Some("value1".to_string()));
db_map.sync_data()?;
Ok(())
}Example DbMapU64:
use siamesedb::DbMapU64;
fn main() -> std::io::Result<()> {
let db_name = "target/tmp/doc-test2.shamdb";
// remove database
let _ = std::fs::remove_dir_all(db_name);
// create or open database
let db = siamesedb::open_file(db_name)?;
let mut db_map = db.db_map_u64("some_list1")?;
let r = db_map.get_string(120)?;
assert_eq!(r, None);
db_map.put_string(120, "value120")?;
let r = db_map.get_string(120)?;
assert_eq!(r, Some("value120".to_string()));
db_map.sync_data()?;
Ok(())
}Modules
Traits
key-value map store interface. the key type is &str.
key-value list store interface. the key type is u64.
generic key-value map store interface. the key type is KT.
Functions
Open the file db. This data is stored in file.
Open the memory db. This data is not stored in file.