一个在学习 Rust 语言时开发的练习项目:Dorea Key-Value 数据库系统。
我是一名高中生,一直研究的方向是 Web 开发,最近在学习 Rust 期间做了这个项目(边学边做嘛)
这个项目在设计和代码层面有很多问题(很有自知之明qwq),这本身也是我对新领域的一次尝试。
如果可以的话,我希望能在社区中看到一些大佬们的提议和反馈,能让我把这个项目做得更好。
- 采用 Bitcask 的存储模型,数据类型层面支持结构化(使用了自制的一种 JSON 拓展格式来完成存储)
- 数据传输使用了自制的 TCP 协议,为了方便还内置了使用 Axum 开发数据库 Api 接口。
- 制作了个人常用的几门语言的
Driver
,包括:Deno、Rust、Python (Deno和Python基于Web接口) - 数据库索引是在内存中保存的,并且是按需加载(在做了);有缓存淘汰机制。
- 简单的拓展(插件)系统设计,采用 Lua 语言做插件,目前已经可以实装了qwq(包含了基本接口)
- 单机可运行多个服务,并配置不同的
workspace
和config-file
DB开发本身就是一个门槛较高的方向,虽然我没啥这方面的经验,但多做做多学学也不是啥坏事嘛qwq
主页: https://dorea.mrxzx.info/