3个版本 (1个不稳定)

1.0.0-pre.12024年6月11日
0.0.1 2024年3月12日

#341 in 数据库实现

MIT/Apache

78KB
1.5K SLoC

CI docs.rs Crates.io MSRV

受RocksDB的BlobDB [1] 启发,在安全、稳定的Rust中实现的通用值日志实现。

该crate旨在作为键值分离存储的构建块。您可能希望使用 https://github.com/fjall-rs/fjall 代替。

特性

  • 线程安全API
  • 100%安全 & 稳定的Rust
  • 支持通用的KV索引结构(LSM树等)
  • 内置的按blob压缩(LZ4,Miniz)(可选)
  • 内存中的blob缓存用于热数据 - 可在多个值日志之间共享以限制内存使用
  • 在线垃圾回收

键限制为65536字节,值限制为2^32字节。

功能标志

lz4

允许使用由 lz4_flex 提供的 LZ4 压缩。

默认禁用。

miniz

允许使用由 miniz_oxide 提供的 DEFLATE/zlib 压缩。

默认禁用。

serde

启用 serde derive。

默认禁用。

稳定的磁盘格式

自1.0.0起,磁盘格式是稳定的。未来的破坏性更改将导致主要版本号的增加和迁移路径。

许可证

所有源代码均受MIT OR Apache-2.0许可。

所有贡献都应按MIT OR Apache-2.0许可。

脚注

[1] https://github.com/facebook/rocksdb/wiki/BlobDB

依赖项

~4–13MB
~149K SLoC