Crate obkv

Source
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 reader: &KvReaderU16 = obkv[..].into();
let mut iter = reader.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.

Traits§

Key
A trait that represents a key, this key will be encoded to disk.

Type Aliases§

KvReaderU8
A reader that can read obkvs with u8 keys.
KvReaderU16
A reader that can read obkvs with u16 keys.
KvReaderU32
A reader that can read obkvs with u32 keys.
KvReaderU64
A reader that can read obkvs with u64 keys.
KvWriterU8
An obkv writer that uses u8 keys.
KvWriterU16
An obkv writer that uses u16 keys.
KvWriterU32
An obkv writer that uses u32 keys.
KvWriterU64
An obkv writer that uses u64 keys.