Husky is a library for creating databases with an API similar to iterators. Its aim is to make cache and indexing easier.
It is built around sled, and can use either rkyv or serde for serialization through feature flags.
```rust
use husky::{Tree, Operate, Change, Load, View};
// Or husky::open("dbpath").unwrap()
let db = husky::opentemp().unwrap();
let tree: Tree
for i in 0..100 { tree.insert(i, i).unwrap(); } // Change the tree values let double = tree.map(|, v| v * 2); double.iter() .flatten() .foreach(|(k, v)| assert_eq!(k * 2, v));
// Change the tree keys let stringidx = tree.index(|k, _| vec![k.tostring()]) .load() .unwrap() .map(|, v| v[0]); stringidx.iter() .flatten() .foreach(|(k, v)| asserteq!(k, v.to_string()));
// Zip two trees let window = tree.zip(&double); window.iter() .flatten() .foreach(|(k, (v, d))| { asserteq!(Some(k), v); assert_eq!(Some(k * 2), d); }); ```