要说目前全世界最流行的轻量级开源数据库,SQLite 绝对是一个无法绕开的名字。它几乎运行在所有主流的移动设备中,在你寸许之间的手机里,可能就同时运行着数个以 .db 结尾的 SQLite 数据库文件。
SQLite 由 Richard Hipp 于 2000 年春季设计并实现。根据数年前 CoRecursive 播客对 Richard 的专访《The Untold Story of SQLite》,我们可以了解到更多这个传奇项目背后的故事。

在那个互联网远未普及的千禧年初,全美仅有 1% 的家庭拥有宽带,谷歌诞生仅两年,维基百科尚未出现。正是在这样的技术背景下,当时对数据库开发并无深厚经验的 Richard,凭借自己对问题的独特理解实现了 SQLite。他的核心思路颇为巧妙:将每条 SQL 语句视为一个独立的“应用程序”,先编写一个编译器将 SQL 编译成字节码,再实现一个字节码执行引擎来运行实际的查询操作——这几乎是一种编程语言的设计思路。经过数月的开发,SQLite 1.0 于 2000 年 8 月正式发布。
因其无需网络连接、配置要求极低,SQLite 迅速在当时的掌机等嵌入式设备中找到了用武之地,并在技术社区引发了广泛讨论。科技巨头们也相继注意到了这个看似不起眼却潜力无限的项目:摩托罗拉在 2002 年率先接洽,希望将其集成到新的手机操作系统中;随后是美国在线(AOL)、诺基亚,再到后来的安卓系统。历经 25 年的持续维护,SQLite 已成为全球安装量最大的数据库,深入渗透到移动设备、机顶盒、路由器等无数设备中。据官方统计,正在使用的 SQLite 数据库实例已超过 1 万亿个。正如其官方所言,SQLite 的影响力在于:它看不见,却无处不在。
由于应用范围如此之广,SQLite 任何潜在的严重 Bug 都可能引发灾难性的连锁反应。为追求极致的稳定性,Richard 在播客中透露,他曾以每周五天、每天 12 小时的强度,耗时整整一年,将 SQLite 的分支测试覆盖率提升到了惊人的 100%。这远超常规的单元测试语句覆盖率。由于 SQLite 的代码极为底层,有时甚至需要深入到机器码层面进行验证,测试难度极高。此外,每个 SQLite 正式版本发布前,都会运行超过 10 万个测试用例,执行超 10 亿次测试,并且覆盖不同的操作系统、CPU 架构和设备平台。这种对软件质量近乎偏执的追求,使其成为了软件测试与工程实践的典范。
一个直观的数据对比是:SQLite 3.42 版本的核心源代码约为 15.6 万行,而其配套的测试代码规模达到了惊人的 9200 万行。

当然,社区中也存在一些知名的 SQLite 衍生版本,libSQL 便是其中之一。它是由 Turso 公司维护的一个开源、开放贡献的 SQLite 分支,在保留 SQLite 核心优势的同时,扩展了分布式、网络连接与性能优化等功能。例如,它增加了 HTTP API 和远程连接支持,使得 SQLite 能够像传统数据库服务器(如 MySQL)一样工作;同时,它还扩展了对 JSON 操作、向量搜索和时序数据的支持。如果说 SQLite 的定位是卓越的离线单文件数据库,那么 libSQL 的野心则在于将其打造为类似 PostgreSQL 的全能型数据库。

我们之所以花费篇幅回顾 SQLite 的历史与 libSQL 等分支,是因为即便在 2025 年的今天,似乎也缺乏足够充分的理由,去用一门新的编程语言彻底重写这个如此成熟且稳定的项目。SQLite 本身由 C 语言编写,性能已相当出色。如果说 InfluxDB 等数据库选择用 Rust 重写是为了追求更高的性能与安全性,那么重写 SQLite 看起来更像是一项“吃力不讨好”的挑战。
然而,就在 2024 年 12 月 10 日,开发 libSQL 的 Turso 公司发布了一篇题为《Introducing Limbo: A complete rewrite of SQLite in Rust》的博客,正式对外公布了 Limbo(后更名为 turso)项目。Turso 是一家专注于为 AI Agent 时代构建云原生数据库的公司,其核心业务正是基于 SQLite 构建。他们在博客中坦承了 libSQL 的局限:由于 SQLite 的核心测试套件是闭源的,他们很难在对其代码进行重大修改时保持足够的信心。于是,一个更具野心的实验性问题被提出:如果我们使用内存安全的现代语言(Rust)完全重写 SQLite,能实现什么?
Limbo 项目最初只是开发者 Pekka 的个人实验,但很快在技术社区(如 X)上获得了高热度和大量关注,收获了数千 Star 和数十位贡献者。这促使 Turso 决定将其吸纳为官方项目,并投入更多资源全力推进。该项目的目标是:从零开始,用 Rust 完全重写 SQLite,保持语言和文件格式层面的完全兼容,达到甚至超越原版 SQLite 的可靠性,并借助 Rust 的内存安全特性构建全新的现代化架构,同时采用宽松的 MIT 开源协议。

如今一年过去,turso 项目虽然仍处于 Beta 阶段,但 Turso 团队切实履行了承诺,持续高速推进。目前,该项目已提交超过 1 万个 commit,发布了 110 个版本,吸引了 168 位开源贡献者,并在 GitHub 上收获了近 1.5 万颗 Star。对于一个底层数据库项目而言,一年的时间能取得如此进展,足以证明 Turso 并非空谈,而是正在认真地执行这项艰巨的任务。
Turso 最终能成功吗?正如其博客中所说,即便成功,或许也难以企及今日 SQLite 所达到的生态高度。但世界有时正是需要这样的“勇士”和看似不划算的探索。就像那位耗时 27 年徒步环游世界的冒险家一样,用 Rust 重写 SQLite 这项工程,其价值或许不仅在于结果,更在于探索过程中所开辟的全新可能性——仅此一点,便已足够。
开源地址
https://github.com/tursodatabase/turso