当 SQLite 遇上云原生,会发生什么?Turso 给出了一个令人兴奋的答案:用 Rust 从零重写 SQLite 内核,加上嵌入式副本、边缘同步和向量搜索,打造一个能跑在任何地方的数据库。
从 libSQL 到 Turso:一场 SQLite 的进化
SQLite 是世界上部署最广泛的数据库,手机里、浏览器里、嵌入式设备里都有它的身影。但 SQLite 有两个致命短板:单写者限制 和缺乏网络同步能力。
2022 年,Glauber Costa(前 ScyllaDB VP、前 Datadog Staff Engineer)和 Pekka Enberg(前 Linux 内核维护者)创立了 Turso,首先推出 libSQL ------ 一个 SQLite 的开源 fork,在保持完全兼容的前提下,增加了服务端模式、嵌入式副本和 WebAssembly 自定义函数。
libSQL 在 GitHub 上拿到了 16,600+ stars,验证了市场需求。但团队没有止步于此。2025 年,Turso 发布了全新的 Turso Database ------ 用 Rust 从头重写的 SQLite 兼容引擎,目前 GitHub 已获 18,300+ stars。
这次重写带来了三个关键突破:
- 并发写入 :通过 MVCC 实现
BEGIN CONCURRENT,告别单写者瓶颈 - 异步 I/O:基于 Linux io_uring,充分利用现代内核的异步能力
- 双向同步:支持离线写入后双向合并,真正的 local-first 架构
核心技术架构
Turso 的架构设计围绕一个核心理念:把数据放到离用户最近的地方。
scss
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 边缘副本 │ │ 边缘副本 │ │ 边缘副本 │
│ (本地SQLite) │ │ (本地SQLite) │ │ (浏览器WASM) │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└───────────┬───────┘───────────────────┘
│ 写入路由 + 增量同步
┌──────┴──────┐
│ 主数据库 │
│ (指定区域) │
└─────────────┘
读取路径:查询直接命中本地嵌入式副本,延迟在微秒级别。基准测试显示,预编译语句的读取延迟约 191 纳秒,吞吐量可达每秒 520 万次查询。
写入路径 :默认路由到远端主库,延迟 20-100ms(取决于与主库的物理距离)。也支持配置 offline: true 实现离线写入,后续同步合并。
同步机制 :支持手动调用 .sync() 或设置 syncInterval 自动定期同步,保证 read-your-writes 语义。副本间的同步延迟通常在 1-50ms。
五个杀手级特性
1. 嵌入式副本(Embedded Replicas)
这是 Turso 最核心的差异化能力。传统数据库每次查询都要走网络,而 Turso 的嵌入式副本就是一个本地 SQLite 文件,读取完全在本地完成。
typescript
import { createClient } from "@libsql/client";
const db = createClient({
url: "file:local-replica.db",
syncUrl: "libsql://my-db.turso.io",
authToken: "...",
syncInterval: 60, // 每60秒自动同步
});
// 读取 --- 本地执行,微秒级延迟
const users = await db.execute("SELECT * FROM users WHERE active = 1");
// 写入 --- 路由到远端主库
await db.execute("INSERT INTO users (name) VALUES (?)", ["Alice"]);
实测平均读取延迟约 624 微秒,比传统网络数据库快 50-100 倍。
2. 原生向量搜索
内置向量搜索能力,无需额外扩展,直接用 SQL 查询:
sql
CREATE TABLE documents (
id INTEGER PRIMARY KEY,
content TEXT,
embedding F32_BLOB(1536)
);
SELECT id, content,
vector_distance_cos(embedding, vector('[0.1, 0.2, ...]'))
AS distance
FROM vector_top_k('documents_idx', '[0.1, 0.2, ...]', 10);
对 AI Agent 场景特别友好------每个 Agent 可以拥有自己的数据库,内置 RAG 所需的向量检索能力。
3. Database-per-Tenant 多租户
Turso 原生支持为每个租户创建独立数据库,在 $4.99/月的 Developer 方案下就能创建无限数量的数据库。通过 Multi-db Schema 功能,父数据库的 schema 变更可以自动传播到所有子数据库。
4. 数据库分支(Database Branching)
类似 Git 分支的概念,基于 Copy-on-Write 实现,可以在秒级创建数据库的完整副本用于开发测试,不影响生产数据。
5. 跨平台运行
同一套引擎可以跑在:
- Linux / macOS / Windows 服务端
- 浏览器(通过 WebAssembly + OPFS 持久化)
- iOS / Android 移动端(支持离线优先)
生态与 SDK 支持
Turso 提供了覆盖主流语言的 SDK:
| 语言 | 包名 |
|---|---|
| TypeScript/JS | @libsql/client / @tursodatabase/database |
| Python | pyturso / libsql-experimental |
| Rust | turso / libsql |
| Go | tursogo / go-libsql |
| Swift | libsql-swift |
| Kotlin | libsql-android |
| PHP/Laravel | turso-driver-laravel |
| Ruby/Rails | 原生支持 |
| .NET | libsql-client-dotnet |
| Flutter | libsql-dart |
同时集成了 MCP(Model Context Protocol)服务,AI 编程助手(如 Claude、Cursor)可以直接操作数据库。
定价策略
| 方案 | 价格 | 数据库数 | 存储 | 月读取行数 | 月写入行数 |
|---|---|---|---|---|---|
| Free | $0 | 100 | 5GB | 5亿 | 1000万 |
| Developer | $4.99/月 | 无限 | 9GB | 25亿 | 2500万 |
| Scaler | $24.92/月 | 无限 | 24GB | 1000亿 | 1亿 |
| Pro | $416.58/月 | 无限 | 50GB | 2500亿 | 2.5亿 |
免费方案给到 100 个数据库和 5GB 存储,对个人项目和原型验证相当慷慨。Developer 方案支持无限数据库,适合做 database-per-user 的多租户场景。
竞品对比
| 维度 | Turso | Neon | Cloudflare D1 | PlanetScale |
|---|---|---|---|---|
| 内核 | SQLite (Rust重写) | PostgreSQL | SQLite | Vitess/MySQL |
| 嵌入式副本 | 原生支持 | 无 | 无 | 无 |
| 离线支持 | 支持 | 无 | 无 | 无 |
| 向量搜索 | 内置 | 需 pgvector | 无 | 无 |
| 边缘部署 | 全球节点 | 有限 | 仅 CF 网络 | 无 |
| 免费存储 | 5GB | 0.5GB | 5GB | N/A |
| 并发写入 | MVCC | 原生支持 | 单写者 | 原生支持 |
| 最适合 | 边缘/移动/AI Agent | Serverless Postgres | CF 生态 | MySQL 大规模场景 |
Turso 的独特优势在于嵌入式副本 + 离线支持 + 向量搜索的组合,这在竞品中是独一无二的。如果你的应用需要在客户端/边缘做低延迟读取,或者需要离线优先能力,Turso 几乎是唯一的选择。
但如果你需要完整的 PostgreSQL 生态兼容(丰富的扩展、存储过程、复杂的事务语义),Neon 会是更好的选择。Turso 的 SQLite 兼容意味着某些高级 SQL 特性不可用。
适用场景判断
强烈推荐使用 Turso 的场景:
- AI Agent 应用:每个 Agent 独立数据库 + 内置向量搜索 + 分支/回滚
- 多租户 SaaS:database-per-tenant 架构,数据天然隔离
- 移动端/IoT 应用:离线优先,后台同步
- 读多写少的边缘应用:嵌入式副本提供微秒级读取
- 需要数据可移植性:用户可直接导出完整 SQLite 文件
不太适合的场景:
- 重度 OLAP 分析查询
- 需要复杂存储过程和触发器
- 已深度绑定 PostgreSQL/MySQL 生态的项目
- 写入吞吐量极高的场景(虽然并发写入在改善,但仍不如传统 RDBMS)
融资与团队
Turso 累计融资约 3300 万美元(种子轮 700 万 + A 轮 2600 万),投资方包括 Norwest Venture Partners 等。天使投资人阵容亮眼,包括 Vercel、GitHub、Netlify、InfluxDB、Redpanda 等公司的创始人。
团队分布在 4 大洲 12 个国家,核心工程能力扎实------CEO 有 ScyllaDB 和 Datadog 背景,CTO 是前 Linux 内核维护者。
写在最后
SQLite 正在经历一场文艺复兴。从 Litestream 到 LiteFS,从 libSQL 到 Turso,越来越多的项目在证明:SQLite 的简洁和可靠性,加上现代分布式能力,足以覆盖大量此前只能用传统客户端-服务端数据库处理的场景。
Turso 用 Rust 重写 SQLite 内核的决定很大胆,但从目前的社区反馈和技术方向来看,这条路走对了。如果你正在构建需要边缘计算、离线优先或 AI Agent 数据层的应用,Turso 值得认真评估。
项目地址:github.com/tursodataba... 官网:turso.tech libSQL:github.com/tursodataba...