encrypted-sled

encrypted-sled is a drop in replacement / wrapper around the amazing sled embedded database. Just configure with an encryption and use normally.

Examples

```rust let cipher = encryptedsled::EncryptionCipher::::newfromslices( b"an example very very secret key.", b"secret nonce", encryptedsled::EncryptionMode::default(), ) .unwrap(); let db = encryptedsled::open("mydb", cipher).unwrap();

// insert and get db.insert(b"yo!", b"v1"); assert_eq!(&db.get(b"yo!").unwrap().unwrap(), b"v1");

// Atomic compare-and-swap. db.compareandswap( b"yo!", // key Some(b"v1"), // old value, None for not present Some(b"v2"), // new value, None for delete ) .unwrap();

// Iterates over key-value pairs, starting at the given key. let scankey: &[u8] = b"a non-present key before yo!"; let mut iter = db.range(scankey..); asserteq!(&iter.next().unwrap().unwrap().0, b"yo!"); asserteq!(iter.next(), None);

db.remove(b"yo!"); assert_eq!(db.get(b"yo!"), Ok(None));

let othertree = db.opentree(b"cool db facts").unwrap(); other_tree.insert( b"k1", &b"a Db acts like a Tree due to implementing Deref"[..] ).unwrap(); ```

Todos

A few things are still not implemented:

License: MIT