#kv #extensible #cached #indexed #how #save

sfsdb

一个简单、可选缓存和索引、可扩展的文件系统数据库,您已经知道如何使用

1 个不稳定版本

0.1.0 2019年4月17日

#9 in #cached

MIT 许可证

27KB
643

简单文件系统数据库

为什么还需要另一个数据库?

现有数据库的问题在于您必须学习它们。Sfsdb是一个高性能、极其简单且可扩展的数据库,旨在尽可能接近语言的原生感觉。如果您知道Rust,您已经可以使用Sfsdb。保存和加载数据相当简单,那么为什么数据库会如此复杂和庞大呢?

认识Sfsdb

功能

  • 无运行时依赖或外部配置
  • 高性能,只需运行基准测试!
  • 可选缓存,无需额外使用成本即可自动管理以获得免费性能提升
  • 可选索引,将索引数据与您的保存一起打包,并使用Rust语言本身进行查询

文档

API文档

或者,使用示例
$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