#key-value-database #sqlite #robust #built #sql #reasonably

boringdb

基于SQLite构建的鲁棒、性能较高的键值数据库

20个版本

0.4.1 2022年5月12日
0.3.15 2022年5月9日
0.3.14 2022年1月18日
0.3.13 2021年12月8日
0.3.10 2021年7月8日

#2309数据库接口


2 个crates中使用

ISC 许可证

16KB
269

BoringDB

一个基于SQLite、单进程的键值数据库。

如果你想要使用boringdb,那么

  • 你想要高性能,接近sled和RocksDB数据库的性能
  • 你不需要SQL、多进程支持或SQLite的其他酷炫功能
  • 你想要SQLite的可靠性

工作方法

BoringDB将键值对存储到字节数组中(Vec<u8>)。

示例

我们这里有各种使用示例 这里.

要运行任何示例,请执行

cargo run --example example_name_goes_here

缓存架构

我们有一个支持以下操作的写回缓存

  • 带有批号插入
  • 带有回退闭包读取键
  • 以迭代器对象的形式移除脏键,返回批。

lib.rs:

BoringDB

一个基于SQLite、单进程的键值数据库。

如果你想要使用boringdb,那么

  • 你想要高性能,接近sled和RocksDB数据库的性能
  • 你不需要SQL、多进程支持或SQLite的其他酷炫功能
  • 你想要SQLite的可靠性

关于持久性的说明

默认情况下,boringdb具有最终一致性:即使面对任意的崩溃,数据库状态也能保证一致,事务保证具有“可序列化”的语义。然而,在崩溃后,数据库可能略微过时,通常只有一秒钟的差距。

为了避免这种行为,请使用Dict::flush方法手动强制与磁盘同步。请注意,这会带来相当严重的性能成本。

工作方法

BoringDB将键值对存储到字节数组中(Vec<u8>)。

示例

示例可以在示例目录中找到

依赖项

~24MB
~459K SLoC