#sled #redb #lmdb #rocksdb #tikv

surrealkv

为Rust设计的低级、版本化、嵌入式、ACID兼容的键值数据库

13个版本

0.3.4 2024年8月20日
0.3.3 2024年8月14日
0.3.0 2024年7月4日
0.2.0 2024年6月21日
0.1.3 2024年2月22日

#88并发

Download history 413/week @ 2024-04-30 579/week @ 2024-05-07 466/week @ 2024-05-14 443/week @ 2024-05-21 543/week @ 2024-05-28 464/week @ 2024-06-04 810/week @ 2024-06-11 709/week @ 2024-06-18 499/week @ 2024-06-25 923/week @ 2024-07-02 728/week @ 2024-07-09 919/week @ 2024-07-16 1074/week @ 2024-07-23 1460/week @ 2024-07-30 2479/week @ 2024-08-06 1922/week @ 2024-08-13

每月7,059次下载
10 个crate中(直接使用5个) 使用

Apache-2.0

400KB
8K SLoC

surrealkv

surrealkv是一个使用Rust实现的版本化、低级、持久化的嵌入式键值数据库。这个ACID兼容的数据库提供了以下特性

  • 事务支持:SurrealKV支持丰富的交易,允许多个条目同时插入、更新或删除。这些事务以原子方式应用,确保符合ACID原则的原子性和一致性。这使得更新在提交之前不可见。

  • 隔离性:SurrealKV提供两个级别的隔离性 - 快照隔离和可序列化快照隔离 - 以防止并发事务相互干扰。

  • 持久性:SurrealKV通过在磁盘上持久化数据来确保持久性,防止系统故障导致的数据丢失。

  • 多版本并发控制(MVCC):SurrealKV通过vart使用不可变版本化的自适应基数树。这允许任意数量的并发读取器和写入器操作而不会相互阻塞。

有关使用的不可变版本化自适应基数树的更多信息,请访问vart

License

特性

  • 内存索引
  • 可嵌入
  • ACID语义
  • 事务支持
  • 内置项目版本化API
  • 多版本并发控制(MVCC)支持
  • 多个并发读取器和写入器
  • 通过只追加文件进行持久化
  • 压缩

重要通知

该项目正在不断发展,因此,文件格式、API和功能集在未来版本中可能会有所变化,直到达到稳定状态。开发者应保持对更新的了解,并查看未来版本说明以了解任何破坏性更改。

请随时贡献、提供反馈或报告问题以帮助塑造surrealkv的未来。感谢您对这个项目的兴趣和参与!

依赖项

~8-16MB
~178K SLoC