<!-- title: 重写最可信代码：SQLite的Rust豪赌 -->
<!-- domain: programming -->
<!-- video: https://www.youtube.com/watch?v=Sntj4HmuykI -->

# 重写最可信代码：SQLite的Rust豪赌

## 导语

程序员圈子里有一句老话：“永远不要重写正在运行的代码。”而SQLite，可能是这颗星球上最没有理由被重写的代码——它跑了二十多年，部署在数十亿设备上，稳定得像个物理定律。但2026年，Fireship用一期10分钟的视频告诉我们：这世界上最受信任的代码，真的正在被用Rust重写，而且“它真的能跑了”。

这期视频值得看的原因有三个：第一，它讲清楚了一个反直觉的事实——SQLite的测试套件竟然是**专有闭源**的，这直接动摇了“社区可以安全地改它”的根基；第二，它记录了"RIIR"（Rewrite It In Rust）这场持续多年的社区运动中，极少数真正走到可用阶段的项目——Turso Database；第三，它回答了一个所有工程师都绕不开的问题：**什么样的重写才会成功？**答案是测试先行、兼容层护城河和差异化特性，而不是对Rust的信仰。下面我们把这10分钟拆开揉碎讲。

## 视频背景卡片

| 项目 | 内容 |
|------|------|
| 视频标题 | The most trusted code on Earth is being rewritten in Rust |
| 频道 | Fireship（约430万订阅） |
| 发布日期 | 2026-06-19 |
| 时长 | 10分12秒 |
| 播放量 | 约60万 |
| 核心主题 | SQLite的历史地位、Turso（原Limbo）项目的Rust重写实践、RIIR浪潮的成败逻辑 |

顺带一提，这期视频的赞助商是AI编程代理Junie——一个讲“重写史诗级代码库”的视频配一个AI写代码的广告位，本身就很有2026年的时代感。

## 核心内容拆解

### 要点1：SQLite凭什么叫“地球上最受信任的代码”

视频开场讲了SQLite的起源：2000年前后，D. Richard Hipp为了解决一个朴素又致命的问题——**数据库服务器一宕机，整个应用跟着瘫痪**——做出了一个嵌入式数据库。它不跑在独立进程里，而是作为一个库直接嵌进应用程序，没有网络，没有配置，整个数据库就是一个文件。

二十多年过去，SQLite成了无处不在的基础设施：你的手机、浏览器、几乎所有操作系统和海量桌面应用里都躺着它。视频里Fireship用了他标志性的说法：这是"the most trusted code on Earth"。

**我的延伸分析**：SQLite的可信不只来自“用了很久”，更来自它偏执的测试文化——官方文档里大量篇幅在讲各种“怎么把它弄坏”的极端场景测试。但视频引出了一个鲜为人知的冷知识（这一点也被Turso官方博客确认）：**SQLite的测试套件是专有的**。也就是说，全世界每天都在用的这段代码，外人根本拿不到它的完整测试集。这意味着任何人想大改SQLite，都无法验证改动是否破坏了那些隐藏的边界行为。这个细节是理解整个故事的钥匙——它决定了后来者的策略。

### 要点2：为什么fork不够，非要重写？

故事的前半段是fork。两年多前，Turso团队先fork了SQLite做出libSQL，走开放贡献路线（据Turso官方博客：超过1.2万GitHub stars、85位贡献者，加上了复制和向量搜索等功能）。fork的好处是能随时从上游回合并新特性，坏处也摆在桌面上：测试套件拿不到，C语言内存不安全，“带着敬意做大改动”几乎是奢望。

压垮fork路线的最后一根稻草是一个具体的技术挫折。团队想给SQLite加原生向量搜索，希望写出自然到几乎“无聊”的SQL：

```sql
SELECT title, year FROM movies
ORDER BY vector_distance_cos(embedding, vector('[4,5,6]'))
LIMIT 3;
```

但因为向量索引需要侵入式修改字节码生成层，最终只能妥协成一个丑陋的方案：把索引当成单独的表，再手动JOIN回主表。**正是这个体验让他们意识到：在别人的地基上，永远盖不出自己想要的那层楼。**（这段SQL对比是Turso官方博客的内容，视频用更浓缩的方式讲了同一件事。）

### 要点3：Turso Database（原Limbo）的诞生与“豪赌”逻辑

2024年12月，团队成员Pekka Enberg在个人GitHub账号上启动了一个代号Limbo的实验：用Rust从零重写SQLite，目标是在**语言层面和文件格式层面完全兼容**SQLite，同时做到全内存安全。据Turso官方博客，这个实验没怎么宣传就自然涨到1000 stars、吸引30多位贡献者，随后被转正为公司官方项目，2026年更名为Turso Database，进入beta阶段。

**我的延伸分析**：这里有个非常值得玩味的策略转变。行业里“重写传奇代码库”的项目十有八九死在半路，而Turso敢下注，靠的是三个差异化条件——这也是视频真正的干货（下一节展开）：一是他们不再依赖SQLite的测试集，而是用全新的可靠性方法论补上这块短板；二是兼容性目标是刻在项目基因里的硬约束而非口号；三是他们不是“为了Rust而Rust”，而是有async、向量搜索这些SQLite架构上给不了的真实诉求。同样逻辑的反面教材马上就有：Bun在2026年年中把整个代码库从Zig迁到Rust，据Fireship的说法只花了约11天，但据第三方分析，迁移后代码里仍有上万个unsafe块——**换语言不等于换安全，重写的价值在于架构，不在于语言图腾。**

### 要点4：可靠性怎么追上SQLite？答案是DST

这是整期视频技术含量最高的部分。既然拿不到SQLite的测试集，Turso怎么敢宣称可靠性“持平甚至超越”？他们的答案是**确定性模拟测试**（Deterministic Simulation Testing，DST）——这个范式由TigerBeetle团队发扬光大，核心思想是：把整个系统放进一个确定性模拟器里运行，可以用不同的故障注入和事件顺序“模拟运行好几年”，而且发现的每个bug都能**100%复现**。

Turso不止自己做DST，还与Antithesis合作——这家公司提供系统级的确定性模拟测试框架，用确定性hypervisor并行跑大量模糊测试线程，模拟各种硬件和软件故障。官方博客给了一个绝佳案例：Antithesis帮他们找到了`io_uring`实现里**部分写入**（partial write）场景下的bug——这种极端罕见的条件，自研模拟器根本测不到，因为测试时真实I/O循环被替换成了模拟I/O。

**我的延伸分析**：这里藏着一个范式级洞察——SQLite的可靠性是“三十年堆人力测出来的”，Turso的可靠性是“设计出来的”。传统测试发现bug后经常无法复现，而DST把“复现”变成了免费品。这对所有做基础设施软件的团队都是启发：**可靠性的上限，取决于你能否把罕见的故障变成可重复的实验。**

### 要点5：三大新特性——重写换来的真金白银

重写不是信仰投资，Turso拿到的回报都是SQLite架构上给不了的：

**全异步I/O**：SQLite的接口是同步的，驱动作者想要异步行为只能靠额外的辅助线程。但现实中“所有SQLite查询都很快”是个假设——大数据集上的聚合查询照样很慢，而在现代架构里（比如Turso自己通过HTTP提供SQLite服务、或基于S3的“无限存储”方案），查询走网络是常态。Turso从底层把`sqlite3_step`扩展为异步API，在Linux上用高性能异步系统调用接口`io_uring`。

**MVCC并发写**：通过多版本并发控制实现写并发，摆脱了SQLite传统的锁模型。

**原生向量搜索**：回到要点2那个挫折——在完全自己的代码库里，向量可以成为一等数据类型，关系查询和向量查询可以在同一张表里用自然的SQL语法完成。这在AI应用遍地的2026年，是个极具现实意义的能力。

以上三点在视频中是主线内容，特性细节与第三方报道（如ghtrends.dev、explainx.ai对Turso 2026年beta状态的描述）相互印证。

### 要点6：性能、简化与WASM——那些“顺手”的收益

官方博客的基准数据（注明：来源为Turso官方博客，在MacBook Air M2上执行`cargo bench`）：`SELECT * FROM users LIMIT 1`，调优过的SQLite跑出620ns，Turso跑出506ns——**快了约20%**。一个beta项目在部分操作上追平甚至超过打磨了二十多年的原版，这本身就是重写可行性的有力注脚。

另外两个容易被忽略的点：一是**简化**。SQLite多年积累下大量调优旋钮——要开WAL模式、要禁POSIX advisory locks才能榨出极致性能，而Turso在保持字节码和文件格式兼容的同时，砍掉了amalgamation这类历史包袱，追求“开箱即用就是好性能”。二是**为WASM而生**。SQLite编译到WASM更像事后补丁（需要wa-sqlite这类项目帮忙），Turso从第一天就设计WASM构建，已有可配合Drizzle等流行工具的VFS实现，浏览器支持在推进中。

**我的延伸分析**：WASM方向值得单独强调。如果数据库能原生跑在浏览器和边缘环境里，“本地优先”（local-first）应用的存储层会多一个重量级选项。这可能是Turso比“又一个更快数据库”更深远的筹码。

## 知识结构图

```mermaid
flowchart TD
    A["SQLite：地球上部署最广的数据库"] --> B["为什么可信"]
    A --> C["为什么想动它"]

    B --> B1["2000年起二十余年打磨"]
    B --> B2["偏执的测试文化"]
    B --> B3["测试套件专有闭源"]

    C --> C1["C语言：内存不安全"]
    C --> C2["同步API：不合现代架构"]
    C --> C3["字节码层动不了：<br>向量搜索语法妥协"]

    C1 --> D["RIIR浪潮：<br>Rewrite It In Rust"]
    C2 --> D
    C3 --> D

    D --> E{"重写策略对比"}
    E --> F["Bun：AI辅助整体迁移<br>Zig到Rust约11天<br>但残留上万个unsafe块"]
    E --> G["Turso：从零重写<br>Limbo到Turso Database"]

    G --> H["兼容性护城河<br>文件格式+字节码兼容SQLite"]
    G --> I["可靠性新范式<br>DST确定性模拟测试<br>+ Antithesis故障注入"]
    G --> J["现代化特性<br>async io_uring / MVCC并发写<br>原生向量搜索 / WASM"]

    H --> K["结论：重写成功的钥匙<br>兼容层 + 测试先行 + 真实差异化诉求"]
    I --> K
    J --> K
```

## 实战启示

**1. 给“要不要重写”一个可操作的判断框架。** Turso案例给出的答案可以浓缩成三个检查项：你是否被测试集锁死（改不动）？你是否需要动架构地基（加不了）？你是否能守住兼容层（换得走）？三问都答“是”，重写才是理性选择；只要有一问答“否”，就回去做fork或封装。Bun的案例从反面提醒：即便有AI辅助、11天完成机械迁移，上万个unsafe块意味着安全和审计成本只是换了形态，并没有消失。

**2. “Rust = 安全”需要打折扣。** 2026年就有现成教训：rust-openssl绑定今年披露了高危漏洞CVE-2026-41676（据NVD与OSV记录，0.9.27至0.10.78之前的版本在`Deriver::derive`中存在缓冲区溢出风险）——Rust代码通过FFI调用C库的边界，依然是C的世界。做内存安全评估时，请把依赖树里的C bindings一并算进去。

**3. 对通信行业同行的类比。** 5G核心网里大量网元仍是C/C++实现，UPF这类高性能数据面组件的内存安全问题在3GPP生态里讨论多年。Turso给的启示是：与其在十万行遗留代码上渐进式打补丁，不如想清楚哪些“异步化、云原生化”的诉求是老架构给不了的——用清晰的兼容层定义 + 新一代测试方法论（比如基于真实信令流程回放的确定性重放）去验证新实现，比“用新语言重写一遍”这个口号本身重要得多。

**4. 立刻能做的动作。** Turso Database目前是beta，不建议直接上生产核心链路，但三件事值得现在做：用`cargo bench`跑一遍官方基准感受性能；如果你的AI应用有“结构化数据+向量”混合查询需求，关注它的原生向量搜索语法演进；如果你的产品面向浏览器/边缘端，盯住它的WASM构建进度。

## 延伸学习路径

1. **[The most trusted code on Earth is being rewritten in Rust](https://www.youtube.com/watch?v=Sntj4HmuykI)** — 本期解读的核心视频，Fireship出品，10分钟高密度
2. **[Introducing Limbo: A complete rewrite of SQLite in Rust](https://turso.tech/blog/introducing-limbo-a-complete-rewrite-of-sqlite-in-rust)** — Turso官方博客，本文多处深度细节（DST、Antithesis、基准数据）的原始出处
3. **[Rewriting in Rust: Performance, Failures, 2026 Reality Check](https://blog.jetbrains.com/rust/2026/08/10/rewriting-in-rust/)** — JetBrains对RIIR运动的2026年冷静复盘
4. **[Rewriting Bun in Rust](https://bun.com/blog/bun-in-rust)** — 另一场标志性重写的一手记录，可与Turso对照阅读
5. **[B站熟肉版](https://www.bilibili.com/video/BV13wjC6UEkx/)** — 中文观众可观看AI翻译配音版快速了解视频全貌

## 一句话总结

**这个视频最大的价值，是把一场看似鲁莽的重写，还原成了一堂教科书级的工程决策课：敢动地球最可信代码的底气，来自兼容层、确定性测试和对真实痛点的回应——而不是对任何编程语言的信仰。**

## 参考来源

1. [The most trusted code on Earth is being rewritten in Rust](https://www.youtube.com/watch?v=Sntj4HmuykI) — 分析的核心视频（Fireship，2026-06-19）
2. [Introducing Limbo: A complete rewrite of SQLite in Rust](https://turso.tech/blog/introducing-limbo-a-complete-rewrite-of-sqlite-in-rust) — Turso官方项目起源博客
3. [Rewriting in Rust: Performance, Failures, 2026 Reality Check](https://blog.jetbrains.com/rust/2026/08/10/rewriting-in-rust/) — JetBrains RIIR 2026现实检查
4. [Rewriting Bun in Rust](https://bun.com/blog/bun-in-rust) — Bun官方重写博客
5. [CVE-2026-41676 Detail](https://nvd.nist.gov/vuln/detail/cve-2026-41676) — NVD关于rust-openssl漏洞的记录
6. [【熟肉】全球最受信任的代码正使用Rust重写](https://www.bilibili.com/video/BV13wjC6UEkx/) — B站中文配音版及章节笔记

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
