35 个版本 (11 个稳定版本)

3.0.0 2023年9月14日
2.0.0 2023年7月20日
1.0.8 2023年6月20日
1.0.6 2023年1月15日
0.1.5 2017年10月23日

#556数据库接口

Download history 190/week @ 2024-03-14 177/week @ 2024-03-21 329/week @ 2024-03-28 201/week @ 2024-04-04 135/week @ 2024-04-11 300/week @ 2024-04-18 181/week @ 2024-04-25 145/week @ 2024-05-02 134/week @ 2024-05-09 237/week @ 2024-05-16 210/week @ 2024-05-23 329/week @ 2024-05-30 308/week @ 2024-06-06 222/week @ 2024-06-13 279/week @ 2024-06-20 160/week @ 2024-06-27

每月 1,014 次下载
用于 10 个 Crates (7 个直接使用)

MIT 许可证

425KB
10K SLoC

leveldb-rs

crates.io

LevelDB 在 Rust 中的完全兼容实现。(任何不兼容性都是错误!)

实现与原始实现非常接近;通常,您可以看到相同的算法被1:1翻译,并且类(结构体)和方法名称相似或相同。

注意:我不推荐使用此库处理任何您关心的数据。然而,我确实关心错误报告。

状态

运行良好。如果您遇到问题,请提交问题。

目标

此实现的一些目标包括

  • 尽可能减少数据的副本;大多数情况下,使用字节数组切片(&[u8])。拥有内存表示为 Vec<u8>(然后可能作为切片借用)。虽然零拷贝并非总是可能,但有时简单性是首选的。
  • 正确性 — 自检实现,良好的测试覆盖率等。就像原始实现一样。
  • 清晰性;带注释的代码,清晰的架构(希望比原始实现做得更好)。
  • 尽可能接近原始实现;阐明典型 C++ 构造到 Rust 的翻译,并更好地帮助理解内部结构。

依赖项

~0.5–1.9MB
~29K SLoC