ChuSQL

本项目是一个简单的数据库项目,服务端采用Haskell和Rust联合编写,采取B/S模式,管理客户端运行在浏览器网页上。

仓库布局

目录 语言 组件
chusql-engine/ Haskell 执行引擎:词法分析与AST、表达式求值、关系代数、内存表、服务端接口
chusql-storage/ Rust 存储引擎:磁盘IO、B+树、缓冲池、WAL、崩溃恢复、并发控制
chusql-web/ 前端 浏览器端管理客户端

架构分层

Haskell部分

作为函数式编程语言,从语言层面契合SQL语句解析和代数数学运算,同时有强大的类型安全系统。

  • SQL词法分析、AST
  • 事务处理
  • 查询优化、内存表管理
  • 关系代数运算
  • 服务端接口与请求相应

Rust部分

高性能、内存安全且具有强大并行异步编程能力的现代编程语言。

  • 磁盘IO
  • B+树、页面管理
  • 缓冲池
  • WAL
  • 事务日志和崩溃恢复
  • 并发控制

前端部分

  • 前端部分目前还没想好选型架构,暂且使用简单前端三件套做一个简单的仿CLI WebUI即可。后期可能会加上Rust编写的CLI前端

Rust和Haskell部分的通信通过管道实现,后期跨平台到Linux后使用Unix Domain Socket

如果找到了较好的Rust+Haskell集成方法也会及时替换

S
Description
个人博客
Readme
1.6 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 77.5%
Python 18.9%
Dockerfile 1.9%
Shell 1.7%