LiteDB 是一个使用现代 C++ 从零构建的轻量级实验型数据库。
项目希望把数据库教材、论文和工业系统中的核心知识,整理为一套可以阅读、运行、调试和继续改造的实现:从 SQL 文本进入解析、绑定、规划与执行流水线,再到记录存储、B+ 树、HNSW、事务、WAL 与崩溃恢复。
LiteDB 的首要目标是学习和架构实验,而不是替代成熟的生产数据库。代码更重视模块边界、执行过程和持久化协议的可观察性,便于沿着一条完整链路理解数据库如何工作。
你可以根据目的选择阅读入口:
| 你的目标 | 推荐入口 |
|---|---|
| 第一次接触 LiteDB | 开始使用 |
| 编译并运行项目 | 下载源码 → 编译源码 → 快速使用 |
| 查询 SQL 语法 | SQL 语句 |
| 理解一次 SQL 如何执行 | SQL 处理流水线 |
| 学习记录如何持久化 | 存储引擎 |
| 学习 B+ 树与 HNSW | 标量索引 / 向量索引 |
| 理解提交与崩溃恢复 | 事务与恢复 |
| 阅读完整系统设计 | 架构与设计 |
| 了解项目为什么建立 | 设计目标 |
当前源码版本为 0.7.1,已经形成一条可持久化、可重启的单节点数据库主链路:
- SQL 词法分析、语法分析、绑定、逻辑计划、规则优化、物理计划与执行;
- 数据库、集合和模式元数据管理;
INSERT、SELECT、UPDATE、DELETE;- 投影、过滤、排序、
LIMIT与OFFSET; - 持久化集合存储和启动恢复;
- 持久化单列 B+ 树索引及等值、范围查询;
VECTOR(n)、向量距离函数和持久化 HNSW 索引;- 隐式语句级事务、redo WAL、崩溃恢复和 checkpoint;
- 简单的 TCP 服务端、客户端与消息协议;
- 覆盖主要模块、持久化格式和崩溃边界的测试。
更完整的能力说明请阅读核心特性。
LiteDB 仍处于早期实验阶段,当前版本适合学习、测试和架构研究,不适合承载生产数据。
| 领域 | 当前状态 |
|---|---|
| SQL 主流水线 | 已实现,可执行基础 DDL、DML 与查询 |
| 持久化存储 | 已实现,文件格式仍处于实验期 |
| 标量索引 | 已实现单列 B+ 树 |
| 向量能力 | 已实现距离函数和 HNSW Top-K 路径 |
| 事务与恢复 | 已实现单写者、隐式语句事务和 redo WAL |
| 查询优化 | 已实现规则优化,尚无统计信息和成本模型 |
| 并发控制 | 仅单写者,尚无 MVCC 和多写者调度 |
| SQL 覆盖 | 尚无连接、子查询、聚合与 GROUP BY |
| 兼容性承诺 | 暂不保证跨实验版本的磁盘格式兼容 |
近期演进方向包括统计信息与成本优化、EXPLAIN、后台 checkpoint、显式多语句事务、MVCC,以及更完整的 SQL 能力。
LiteDB 使用 MIT License 发布。