sled 0.16.3

a flash-sympathetic persistent lock-free B+ tree
sled-0.16.3 doesn't have any documentation.

sled is a flash-sympathetic persistent lock-free B+ tree.

Examples

let t = sled::Tree::start_default("my_db").unwrap();

t.set(b"yo!", b"v1".to_vec());
assert!(t.get(b"yo!").unwrap().unwrap() == &*b"v1".to_vec());

t.cas(
b"yo!",                // key
Some(b"v1"),           // old value, None for not present
Some(b"v2".to_vec()),  // new value, None for delete
).unwrap();

let mut iter = t.scan(b"a non-present key before yo!");
// assert_eq!(iter.next(), Some(Ok((b"yo!".to_vec(), b"v2".to_vec()))));
// assert_eq!(iter.next(), None);

t.del(b"yo!");
assert_eq!(t.get(b"yo!"), Ok(None));