开源项目 Turso:Rust 重写的 SQLite 兼容数据库,自称"数据库界的 LLVM",一个引擎多个 SQL 前端
Turso
Rust 重写的 SQLite 兼容数据库,自称”数据库界的 LLVM”,一个引擎多个 SQL 前端
项目速览
项目 内容 仓库 tursodatabase/turso 语言 Rust Stars 约 2.48 万(2026-10-19 GitHub API 口径),Forks 1,456 协议 MIT 状态 2023-08 创建,持续高频提交(10-19 当天仍有代码合入),最新标签 0.9.0-pre.1(2026-10),尚未 1.0 热度 Trendshift Rust 榜常客;生产用户含 Turso Cloud、Kin AI 助手、Spice.ai
它想解决什么问题
SQLite 是地球上部署最广的数据库,但它是 2000 年代的 C 代码:单写者、无原生异步 I/O、无向量检索、无 CDC,想加这些能力只能外挂。libSQL 当年选择 fork,但 fork 意味着永远跟着上游的架构走。Turso 的赌注更大——用 Rust 从零重写一个 SQLite 兼容的引擎,在 SQL 方言、文件格式、C API 三个层面兼容,同时把 MVCC 并发、io_uring 异步 I/O、向量支持、CDC 这些现代能力做进内核。
它的自我定位是”数据库界的 LLVM“:一个共享的引擎核心(存储、并发、查询编译器、虚拟机),上面可以编译多个 SQL 前端——SQLite 是主力前端(当前跟踪 3.50.4),Postgres 是实验性新前端(方言 + 线协议)。团队甚至在这个字节码虚拟机上跑通过 Doom,用来证明 VM 的通用性。
核心机制拆解
1. VDBE 字节码虚拟机。 和 SQLite 一样,Turso 把 SQL 编译成字节code在虚拟机上执行——这正是”一个引擎多个方言”得以成立的关键:SQL 层之下完全共享,方言只是前端。
2. 已稳定能力。 SQLite 兼容(现有 .db 文件可直接打开);BEGIN CONCURRENT 基于 MVCC 提升写吞吐;CDC 变更捕获;Linux 上经 io_uring 的异步 I/O;向量精确检索与向量运算;扩展的 ALTER 与更快的 schema 变更;跨平台覆盖 Linux/macOS/Windows 与浏览器 WASM;Rust/JS/Python/Go/Java/.NET 六种语言绑定。
3. 实验性能力。 Postgres 前端(CI 里跑 pg-sqltests 对齐真实 PostgreSQL);静态加密;基于 DBSP 的增量计算(增量视图维护、查询订阅);tantivy 驱动的全文检索;经 .tshm 边车文件的多进程 WAL 协调。
4. 可靠性工程是重头戏。 确定性仿真测试(Deterministic Simulation Testing)+ Antithesis 平台持续轰炸,多进程 WAL 协调有 TLA+ 形式化模型,还发了 DIRT(Database-Integrated Random Testing,DBTest ‘26)论文。团队对 1.0 的门槛是”SQLite 级可靠性”,并明确建议 1.0 之前保持独立备份。
5. 面向 Agent 的接口。 tursodb db.db --mcp 直接以 MCP 服务器模式运行,暴露 9 个工具(open_database、list_tables、execute_query、insert_data 等),Claude Code、Cursor 可直接把数据库当工具用。
安装与上手
1 | # CLI |
已有 SQLite 库的迁移成本接近于零:文件格式兼容,换驱动即可;想用新能力再逐步切到 Turso 特有 API。
点评
亮点是路线选择的正确性:不 fork 而是重写,才可能把 MVCC、io_uring、向量、多前端这些”SQLite 这辈子不会有的东西”做进内核而不是外挂;”LLVM of databases”的定位清晰且有说服力——字节码 VM 让 Postgres 前端在几个月内从实验跑到 CI 对齐真实 PG。对 Agent 生态的嗅觉也在线:MCP 模式让数据库直接成为编码 Agent 的工具,向量 + CDC + 增量视图恰好是 RAG 与实时应用需要的内脏。MIT 协议、六语言绑定、生产用户背书,生态位卡得很准。
局限要认清:尚未 1.0,兼容性不是 100%(项目用 COMPAT.md 逐项跟踪差距,完整兼容是 1.0 的硬门槛);Postgres 前端、加密、DBSP 均为实验性;性能头条是 MVCC 写吞吐,读路径与 SQLite 的对比基准仍在完善中;libSQL 用户面临迁移决策(Turso 明确取代 libSQL 成为官方方向)。生产采用建议:先跑自己的负载基准,备份策略照旧。
适合人群:受够 SQLite 单写者的应用团队、需要”嵌入式 + 向量 + CDC”组合的本地优先应用、边缘/WASM 场景开发者,以及想研究”现代数据库引擎如何兼容经典格式”的基础设施爱好者。
评论