Turso:用 Rust 重写 SQLite,让数据库跑在每一个边缘节点

22 阅读1分钟

当 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 的架构设计围绕一个核心理念:把数据放到离用户最近的地方

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  边缘副本     │     │  边缘副本     │     │  边缘副本     │
│  (本地SQLite) │     │  (本地SQLite) │     │  (浏览器WASM) │
└──────┬──────┘     └──────┬──────┘     └──────┬──────┘
       │                   │                   │
       └───────────┬───────┘───────────────────┘
                   │ 写入路由 + 增量同步
            ┌──────┴──────┐
            │   主数据库    │
            │  (指定区域)   │
            └─────────────┘

读取路径:查询直接命中本地嵌入式副本,延迟在微秒级别。基准测试显示,预编译语句的读取延迟约 191 纳秒,吞吐量可达每秒 520 万次查询。

写入路径:默认路由到远端主库,延迟 20-100ms(取决于与主库的物理距离)。也支持配置 offline: true 实现离线写入,后续同步合并。

同步机制:支持手动调用 .sync() 或设置 syncInterval 自动定期同步,保证 read-your-writes 语义。副本间的同步延迟通常在 1-50ms。

五个杀手级特性

1. 嵌入式副本(Embedded Replicas)

这是 Turso 最核心的差异化能力。传统数据库每次查询都要走网络,而 Turso 的嵌入式副本就是一个本地 SQLite 文件,读取完全在本地完成。

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 查询:

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
Pythonpyturso / libsql-experimental
Rustturso / libsql
Gotursogo / go-libsql
Swiftlibsql-swift
Kotlinlibsql-android
PHP/Laravelturso-driver-laravel
Ruby/Rails原生支持
.NETlibsql-client-dotnet
Flutterlibsql-dart

同时集成了 MCP(Model Context Protocol)服务,AI 编程助手(如 Claude、Cursor)可以直接操作数据库。

定价策略

方案价格数据库数存储月读取行数月写入行数
Free$01005GB5亿1000万
Developer$4.99/月无限9GB25亿2500万
Scaler$24.92/月无限24GB1000亿1亿
Pro$416.58/月无限50GB2500亿2.5亿

免费方案给到 100 个数据库和 5GB 存储,对个人项目和原型验证相当慷慨。Developer 方案支持无限数据库,适合做 database-per-user 的多租户场景。

竞品对比

维度TursoNeonCloudflare D1PlanetScale
内核SQLite (Rust重写)PostgreSQLSQLiteVitess/MySQL
嵌入式副本原生支持
离线支持支持
向量搜索内置需 pgvector
边缘部署全球节点有限仅 CF 网络
免费存储5GB0.5GB5GBN/A
并发写入MVCC原生支持单写者原生支持
最适合边缘/移动/AI AgentServerless PostgresCF 生态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…