#db #database #open-file #file-backed #cli #bbolt

bin+lib bbolt-rs

Bolt数据库的Rust版本

2个稳定版本

1.3.9 2024年7月19日
1.3.8 2024年5月10日

#64数据库实现

每月48次下载

自定义许可

1MB
11K SLoC

bbolt-rs

bbolt-rs是etcd-io/bbolt数据库在Rust中的实现。它能够成功读取和提交,但有一些限制。

当前版本与Bolt v1.3.9相匹配。

我对我的工作感到非常满意,因为我相信我创建的公共API比Go代码有更少的陷阱。

  • 必须先关闭所有会话,才能删除数据库。
  • 事务中的资源无法从事务中逃逸。
  • 通过先打开一个读写事务,然后立即打开一个只读事务,你不能使数据库发生死锁。

有趣的是,尽管内存使用量增加,但在模拟的大事务中,这段代码比等效的Go代码快约40%。进一步的基准测试将在数据库完全功能完善后进行(正在进行中)!

最后,我必须向创建了这样一个简单且易于理解的项目以便学习的bbolt开发者表示永恒的感激。

特性

  • 每个事务的竞技场内存分配
  • 明确设计,以防止事务依赖的资源从事务中逃逸。
  • 基于RwLock的事务
  • 基于文件的数据库
  • 基于内存的数据库
  • Miri测试,以防止在不可安全块中发生内存错误
  • 简单直接的公共API

查看文档!!

目前不支持

  • Tx.copy
  • 主要应用程序的大部分
  • 包括各种数据库选项,如
    • 无freelist同步
    • 文件打开超时
  • 基准测试中的恐慌处理

依赖

~7–17MB
~228K SLoC