torymur/sqlite-repr
GitHub: torymur/sqlite-repr
一个用于可视化展示 SQLite 磁盘文件格式的工具,帮助理解其文件结构并辅助故障排查与学术研究。
Stars: 75 | Forks: 7
### SQLite3 表示
[SQLite](https://www.sqlite.org/) 是一个 C 语言库,实现了小型、快速、独立、高可靠性、功能齐全的 SQL 数据库引擎。SQLite 是世界上使用最广泛的数据库引擎,内置在所有手机和大多数计算机中,并包含在无数其他应用程序中,人们每天都在使用它。
SQLite 文件格式稳定、跨平台且向后兼容,开发者承诺在 2050 年之前保持这一特性。
所有这些都使得探究其磁盘上的 [数据库文件格式](https://www.sqlite.org/fileformat2.html) 以了解软件开发的客观性和故障排除原因,以及出于学术目的或常规自学研究 SQLite 数据库格式变得有趣。
### 目标
该项目提供了一个在 https://torymur.github.io/sqlite-repr/ 上可用的可视化工具,用于探索 SQLite 的磁盘数据库文件格式。
它包含一些已内置的数据库示例,用于展示 SQLite 页面的主要类型,如表/索引内部/叶 B 树页面、空闲列表和溢出页面,以及 SQLite 的其他一些特性。
它还允许你加载并解析自己的数据库文件。然而,解析可能会失败,即使对于有效的数据库文件也是如此,因为解析器尚未支持所有 SQLite 特性。
如果发生这种情况,请考虑打开一个问题,并包含一个能够重现该数据库查询序列的最小示例。
### 开发
要在本地运行 UI,请按照[这里](ui/)的说明操作。
### 地图 🗺️
#### 解析器
- [x] 表内部 B 树页面
- [x] 表叶 B 树页面
- [x] 索引内部 B 树页面
- [x] 索引叶 B 树页面
- [x] 空闲列表页面
- [x] 溢出页面
- [x] 溢出记录值
- [ ] 溢出记录头(罕见)
- [ ] ~~指针映射页面~~
- [ ] ~~锁字节页面~~
- [ ] 空闲块与碎片字节
#### 用户界面
- [x] 混合、十六进制、文本字段表示
- [x] 预加载示例数据库,详情
- [x] 页面视图
- [x] 树视图
- [ ] 保留空间
- [x] 添加你自己的
- [ ] 控制台
标签:B树, B+树, DNS解析, SQLite, SQLite3, UI工具, Web可视化, 二进制格式, 云安全监控, 代码解析, 内页叶页, 前端可视化, 可视化界面, 威胁情报, 学术研究, 开发者工具, 开源项目, 技术学习, 故障排查, 数据库可视化, 数据库开发, 数据库文件格式, 数据恢复, 数据解析, 文件格式分析, 文件格式解析, 溢出页, 版本兼容, 空闲列表, 通知系统, 静态分析, 页结构