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 • Rust 包仓库 2027/week @ 2024-04-25 • Rust 包仓库 2240/week @ 2024-05-02 • Rust 包仓库 2027/week @ 2024-05-09 • Rust 包仓库 2161/week @ 2024-05-16 • Rust 包仓库 1849/week @ 2024-05-23 • Rust 包仓库 2075/week @ 2024-05-30 • Rust 包仓库 1885/week @ 2024-06-06 • Rust 包仓库 2029/week @ 2024-06-13 • Rust 包仓库 2261/week @ 2024-06-20 • Rust 包仓库 2446/week @ 2024-06-27 • Rust 包仓库 1339/week @ 2024-07-04 • Rust 包仓库 1222/week @ 2024-07-11 • Rust 包仓库 1032/week @ 2024-07-18 • Rust 包仓库 1059/week @ 2024-07-25 • Rust 包仓库 898/week @ 2024-08-01 • Rust 包仓库 881/week @ 2024-08-08 • Rust 包仓库

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?

无运行时依赖