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