5 个不稳定版本
0.3.0-alpha | 2020年2月19日 |
---|---|
0.2.2-alpha | 2020年2月18日 |
0.2.1-alpha | 2020年2月18日 |
0.2.0-alpha | 2020年2月12日 |
0.1.0-alpha | 2020年2月4日 |
#1115 in 并发
75KB
1.5K SLoC
SSTB
一个实验性和教育性的尝试,编写一个 Rust 线程安全的 sstables 库。
有关更多详细信息和支持背景,请参阅 文档。
使用方法
有关编写 SSTables 的信息,请参阅 编写者文档
有关读取 SSTables 的信息,请参阅 读取者文档
快速入门
以下示例将使用单个线程的默认选项写入然后读取 sstable。
有关更有效的并发读取代码,请参阅 读取者文档。
use sstb::*;
use std::collections::BTreeMap;
let filename = "/tmp/example-sstable";
let mut map = BTreeMap::new();
map.insert(b"foo", b"some foo");
map.insert(b"bar", b"some bar");
write_btree_map(&map, filename, None).unwrap();
// This example does not use multiple threads, so it's ok to use
// SSTableReader instead of ConcurrentSSTableReader.
let mut reader =
SSTableReader::new_with_options(filename, &ReadOptions::default())
.unwrap();
assert_eq!(reader.get(b"foo").unwrap(), Some(b"some foo" as &[u8]));
assert_eq!(reader.get(b"bar").unwrap(), Some(b"some bar" as &[u8]));
assert_eq!(reader.get(b"foobar").unwrap(), None);
依赖项
~5.5MB
~109K SLoC