18个版本

0.2.3 2023年1月1日
0.2.1 2022年12月28日
0.2.0 2021年12月7日
0.1.14 2021年11月21日
0.1.7 2021年9月30日

编码 中排名 605

Download history 374/week @ 2024-03-11 526/week @ 2024-03-18 163/week @ 2024-03-25 97/week @ 2024-04-01 121/week @ 2024-04-08 151/week @ 2024-04-15 124/week @ 2024-04-22 193/week @ 2024-04-29 103/week @ 2024-05-06 108/week @ 2024-05-13 115/week @ 2024-05-20 415/week @ 2024-05-27 86/week @ 2024-06-03 84/week @ 2024-06-10 65/week @ 2024-06-17 61/week @ 2024-06-24

每月下载量 308
用于 3 个crate (2 个直接使用)

MIT 许可证 MIT

125KB
2K SLoC

typed-sled - 基于sled构建的数据库

API

sled 是一个高性能的嵌入式数据库,其API类似于一个 BTreeMap<[u8], [u8]>.
typed-sled 基于sled构建,并提供一个类似 BTreeMap<K, V> 的API,其中K和V是用户定义的类型。

示例

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
struct SomeValue(u32);

// Creating a temporary sled database
let db = sled::Config::new().temporary(true).open().unwrap();

// The id is used by sled to identify which Tree in the database (db) to open
let tree = typed_sled::Tree::<String, SomeValue>::open(&db, "unique_id");

// insert and get, similar to std's BTreeMap
tree.insert(&"some_key".to_owned(), &SomeValue(10))?;

assert_eq!(tree.get(&"some_key".to_owned())?, Some(SomeValue(10)));
Ok(())


特性

提供多个特性以适应常见用例

  • 使用 tantivy 在树的关键字和值中进行搜索的搜索引擎。
  • 自动生成键。
  • 自定义(反)序列化。默认情况下使用 bincode 进行(反)序列化,但支持自定义(反)序列化器,使得零拷贝或懒(反)序列化成为可能。
  • 将一个类型化树转换为另一个类型化树,其键和值类型不同。

依赖关系

~2–7.5MB
~134K SLoC