完成Haskell部分的SQL词法分析器
This commit is contained in:
commit
a9ef1ef3e2
21 files changed
+1547
No files matched your search
@@ -0,0 +1,44 @@
|
||||
# ChuSQL
|
||||
|
||||
本项目是一个简单的数据库项目,服务端采用Haskell和Rust联合编写,采取B/S模式,管理客户端运行在浏览器网页上。
|
||||
|
||||
## 仓库布局
|
||||
|
||||
| 目录 | 语言 | 组件 |
|
||||
| ----------------- | ------- | ----------------------------------------------------------------- |
|
||||
| `chusql-engine/` | Haskell | 执行引擎:词法分析与AST、表达式求值、关系代数、内存表、服务端接口 |
|
||||
| `chusql-storage/` | Rust | 存储引擎:磁盘IO、B+树、缓冲池、WAL、崩溃恢复、并发控制 |
|
||||
| `chusql-web/` | 前端 | 浏览器端管理客户端 |
|
||||
|
||||
详细架构、模块职责与构建目标见 [ARCHITECTURE.md](ARCHITECTURE.md)。
|
||||
|
||||
# 架构分层
|
||||
|
||||
## Haskell部分
|
||||
|
||||
作为函数式编程语言,从语言层面契合SQL语句解析和代数数学运算,同时有强大的类型安全系统。
|
||||
|
||||
- SQL词法分析、AST
|
||||
- 事务处理
|
||||
- 查询优化、内存表管理
|
||||
- 关系代数运算
|
||||
- 服务端接口与请求相应
|
||||
|
||||
## Rust部分
|
||||
|
||||
高性能、内存安全且具有强大并行异步编程能力的现代编程语言。
|
||||
|
||||
- 磁盘IO
|
||||
- B+树、页面管理
|
||||
- 缓冲池
|
||||
- WAL
|
||||
- 事务日志和崩溃恢复
|
||||
- 并发控制
|
||||
|
||||
## 前端部分
|
||||
|
||||
- 前端部分目前还没想好选型架构,暂且使用简单前端三件套做一个简单的仿CLI WebUI即可。后期可能会加上Rust编写的CLI前端
|
||||
|
||||
> Rust和Haskell部分的通信通过管道实现,后期跨平台到Linux后使用Unix Domain Socket
|
||||
|
||||
> 如果找到了较好的Rust+Haskell集成方法也会及时替换
|
||||
Reference in new issue
Block a user