5个版本

0.2.2 2024年7月2日
0.2.1 2023年10月24日
0.2.0 2021年7月5日
0.1.1 2020年10月21日
0.1.0 2020年10月21日

#224 in 数据库实现

Download history 2027/week @ 2024-04-25 2240/week @ 2024-05-02 2027/week @ 2024-05-09 2161/week @ 2024-05-16 1849/week @ 2024-05-23 2075/week @ 2024-05-30 1885/week @ 2024-06-06 2029/week @ 2024-06-13 2261/week @ 2024-06-20 2446/week @ 2024-06-27 1339/week @ 2024-07-04 1222/week @ 2024-07-11 1032/week @ 2024-07-18 1059/week @ 2024-07-25 898/week @ 2024-08-01 881/week @ 2024-08-08

4,025 个月下载量

MIT 许可证

15KB
254

obkv

一个微型的键值存储,其中键始终为一个字节。它高度灵感来源于KVDS crate

用法

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 reader = KvReader::new(&obkv);
assert_eq!(reader.get(0), Some(&b"hello"[..]));
assert_eq!(reader.get(1), Some(&b"blue"[..]));
assert_eq!(reader.get(10), None);
assert_eq!(reader.get(255), Some(&b"world"[..]));

lib.rs:

obkv代表优化字节的键和值存储。

此库的主要目的是能够存储键值条目,其中键可以用优化的字节数表示,这允许进行许多优化。

示例:创建一个obkv并遍历条目

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?

无运行时依赖