Expand description
obkv
stands for optimized-bytes key and a value store.
The main purpose of this library is to be able to store key value entries where the key can be represented by an optimized amount of bytes, this allows a lot of optimizations.
Example: Creating an obkv
and iterating over the entries
use obkv::{KvWriterU16, KvReaderU16};
let mut writer = KvWriterU16::memory();
writer.insert(0, b"hello").unwrap();
writer.insert(1, b"blue").unwrap();
writer.insert(255, b"world").unwrap();
let obkv = writer.into_inner().unwrap();
let mut iter = KvReaderU16::new(&obkv).iter();
assert_eq!(iter.next(), Some((0, &b"hello"[..])));
assert_eq!(iter.next(), Some((1, &b"blue"[..])));
assert_eq!(iter.next(), Some((255, &b"world"[..])));
assert_eq!(iter.next(), None);
assert_eq!(iter.next(), None); // is it fused?
Structs
- An iterator over a
obkv
database. - A reader of
obkv
databases. - An
obkv
database writer.
Traits
- A trait that represents a key, this key will be encoded to disk.
Type Aliases
- A reader that can read
obkv
s withu8
keys. - A reader that can read
obkv
s withu16
keys. - A reader that can read
obkv
s withu32
keys. - A reader that can read
obkv
s withu64
keys. - An
obkv
writer that usesu8
keys. - An
obkv
writer that usesu16
keys. - An
obkv
writer that usesu32
keys. - An
obkv
writer that usesu64
keys.