[][src]Crate obkv

obkv stands for one-byte 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 one byte, this allows a lot of optimizations.

Example: Creating an obkv and iterating over the entries

use obkv::{KvWriter, KvReader};

let mut writer = KvWriter::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 = KvReader::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

KvIter

An iterator over a obkv database.

KvReader

A reader of obkv databases.

KvWriter

An obkv database writer.