1 个不稳定版本
0.1.0 | 2019年4月17日 |
---|
#9 in #cached
27KB
643 行
简单文件系统数据库
为什么还需要另一个数据库?
现有数据库的问题在于您必须学习它们。Sfsdb是一个高性能、极其简单且可扩展的数据库,旨在尽可能接近语言的原生感觉。如果您知道Rust,您已经可以使用Sfsdb。保存和加载数据相当简单,那么为什么数据库会如此复杂和庞大呢?
认识Sfsdb
功能
- 无运行时依赖或外部配置
- 高性能,只需运行基准测试!
- 可选缓存,无需额外使用成本即可自动管理以获得免费性能提升
- 可选索引,将索引数据与您的保存一起打包,并使用Rust语言本身进行查询
文档
或者,使用示例。
$git clone https://github.com/AlmightyFloppyFish/sfsdb; cdsfsdb
$cargo run --release --examplesimple
$cargo run --release --examplecached
$cargo run --release --exampleindexed
$cargo run --release --examplebenchmark
基准测试
不想编译基准测试示例?那么这里是我的结果
(Simple) Saving justin 1000 times took: 40.561932ms
(Simple) Loading justin (with key '400') 1000 times took: 3.490118ms
(Cached) Saving justin 1000 times took: 44.653967ms
(Cached) Loading justin (with key '400') 1000 times took: 776.095µs
(Indexed + Cached) Saving justin 1000 times took: 85.815535ms
(Indexed + Cached) Loading justin (with key '400') 1000 times took: 662.987µs
(Indexed + Cached) Querying for all logged-in users (which yielded 500 results) took: 44.308µs
(Indexed + Cached) Querying for all locked-out users (which yielded 179 results) took: 24.893µs
Intel i7-6600U (4) @ 3.400GHz
SATA SSD
16GB RAM
跨语言支持
有一个实验性的Golang版本和计划中的Haskell版本。
但是,由于它们不仅仅是移植,因此可能需要一些时间。但是,它们是针对语言进行了全面重写,以尽可能接近原生的感觉。
贡献
代码贡献非常欢迎!只需提交一个拉取请求,并确保使用rustfmt格式化
依赖
~2.4–3MB
~56K SLoC