#leveldb #key-value #key-value-database #ss-table #google

rusty-leveldb-arc

Rust 中对 LevelDB 的兼容性重实现(但使用 Arc 而不是 Rc)

1 个稳定版本

2.0.0 2023 年 8 月 22 日

#2616数据库接口

MIT 许可证

425KB
10K SLoC

leveldb-rs-arc

crates.io

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

实现非常接近原始版本;通常,可以看到相同的算法被 1:1 转换,类(结构体)和方法名称相似或相同。

注意:我并不推荐将此库用于任何重要的数据。然而,我确实关心错误报告。

状态

工作状况良好。如果遇到问题,请提交问题。

目标

本实现的一些目标包括

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

依赖项

~0.8–2.1MB
~35K SLoC