【你们的项目】本身作了一个轻量级的 NoSQL 数据库

本文来源:https://www.v2ex.com/t/727979

给你们介绍一个我的做品,叫 PoloDB,一个很是轻量级的 NoSQL 数据库,有着相似 MongoDB 的 API,主打几个特性:

轻量级

没有像 MySQL 那样的独立进程,它能够编译成静态库或者动态库,集成在你的应用里面,像 SQLite 同样。
只须要不多资源就可以启动,不像 MongoDB,须要很强大的电脑,很适合分发到用户的设备上去。通常来讲,用户的设备的配置不像服务器那么强大。好比你想在普通用户的 PC 甚至手机上运行一个重量级数据库,几乎不可能。若是一个客户端须要一个数据库,那么就须要这种轻量级的数据库。
在磁盘上就只有一个文件,很容易传输、分发、备份。不须要再打包,导出。

可移植性

PoloDB 是用 Rust 写的,能够运行在大多数平台上。目前来讲,我已经让它支持了 X86 上的 macOS,Linux 和 Windows 。以后,支持移动平台( iOS/Android )也在计划之中。像树莓派、龙芯、M1,应该也没问题。
PoloDB 还支持很是丰富的语言绑定。C/C++ 和 Rust 能够直接使用。如今已经能够经过 Python 和 Node.js 来使用 PoloDB 了,适配层已经开发完。之后愈来愈多语言能够接入。

灵活性

NoSQL 数据库,能够像 MongoDB 同样使用,很灵活。数据操做读写都是经过 JSON,不须要建立 schema,打开数据库直接能够插入数据。
如今的应用都迭代很是快,若是须要一种很是灵活,能够快速支持各类需求的数据库,像 PoloDB 这种 NoSQL 就很合适。

功能齐全

虽说是轻量级的数据库,可是一个数据库该有的功能,PoloDB 也不会落下。好比说,如今已经支持原子提交(事务)。之后像数据索引这一类数据库该有的功能也会慢慢提供。以后经过拓展 API,会有愈来愈多的功能加进来,好比数据加密、数据备份、数据处理等等,有很大的想象空间。固然这些拓展功能都是可选的,由于要保持数据库自己是轻量级的。
我如今看到不少人,不少应用喜欢把数据存到 JSON 文件里面。有了 PoloDB 以后,可能就会更加优雅。除了能够用上数据库的功能,也能够防止一会儿把大量数据读到内存。由于 PoloDB 里面经过自身结构能够只读取你须要的那一部分数据,对性能大有益处。写入也是同理的。

开源

如今来讲这是个人一个业余的我的项目,我都是用下班时间来写的。代码都开源在 Github 上面。你们喜欢的话,能够自行下载、review 里面的实现细节。我感受 PoloDB 仍是一个蛮有意思的项目,因此源码也和你们分享。最重要的,仍是但愿和你们交流。
固然了,这是我几个月前开始开发的项目,如今仍是一个很早期的阶段,可是也已经基本能够跑起来了。这个项目看起来很精简、很轻量,可是里面实现的细节并不简单。接下来还有很是多的工做要作,好比写一些解释它工做原理的文档,写不少严格的单元测试,给各类平台、语言作适配。欢迎你们试用,提 issue 和 MR 。
Github 地址: https://github.com/vincentdchan/PoloDB



本文分享自微信公众号 - Rust语言中文社区(rust-china)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。git

相关文章
相关标签/搜索