3个版本

0.1.2 2023年10月7日
0.1.1 2023年6月10日
0.1.0 2023年5月11日

#449异步


2 crates 使用

Apache-2.0

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");

Crates.io

API文档

安装

[dependencies]
baildon = "0.1"

示例

有一些简单的示例来展示如何使用库

cargo run --example hello
cargo run --example streaming

基准测试

我在开发过程中使用了一些非常简单的基准测试来查找回归。我打算在某个时候改进这些测试。

cargo bench --bench baildon

许可证

Apache 2.0许可证。有关详细信息,请参阅LICENSE。

依赖关系

~8–17MB
~201K SLoC