3个版本
0.1.2 | 2023年10月7日 |
---|---|
0.1.1 | 2023年6月10日 |
0.1.0 | 2023年5月11日 |
#449 在 异步
被 2 crates 使用
255KB
2.5K SLoC
baildon
一个非常简单的B+树库。
特性
- 泛型B+树
- 异步(使用tokio)
- 预写日志
- 基于serde的存储格式(bincode)
use baildon::tree::Baildon;
use baildon::tree::Direction;
// Create a B+Tree with usize for key and value, branching factor 7
let tree = Baildon::<usize, usize>::try_new("retrieve_keys_from_empty_tree.db", 7)
.await
.expect("creates tree file");
// Collect all our keys
let keys = tree
.keys(Direction::Ascending)
.await
.collect::<Vec<usize>>()
.await;
// It should be empty, we didn't add any keys
assert!(keys.is_empty());
// Remove our B+Tree file, we aren't going to use it again
std::fs::remove_file("retrieve_keys_from_empty_tree.db").expect("cleanup");
安装
[dependencies]
baildon = "0.1"
示例
有一些简单的示例来展示如何使用库
cargo run --example hello
cargo run --example streaming
基准测试
我在开发过程中使用了一些非常简单的基准测试来查找回归。我打算在某个时候改进这些测试。
cargo bench --bench baildon
许可证
Apache 2.0许可证。有关详细信息,请参阅LICENSE。
依赖关系
~8–17MB
~201K SLoC