





















今天在 GitHub Trending 上看到一个野心勃勃的项目:Turso Database,一个用 Rust 从零重写的 SQLite 兼容数据库,目标是成为 SQLite 的下一代进化版本。
Turso Database 由 Turso 团队开发,是一个进程内 SQL 数据库,完全兼容 SQLite 的 SQL 方言、文件格式和 C API。与 libSQL(通过 fork SQLite 演进而来)不同,Turso 选择了一条更激进的道路——用 Rust 完全重写 SQLite,以获得更好的内存安全、原生异步支持和更强的可扩展性。
核心亮点包括:
目前项目处于 Beta 阶段(v0.7.0-pre.10),但已在生产环境中运行,支撑着 Turso Cloud、Kin AI 助手和 Spice.ai 等产品。
Turso 的架构设计充分考虑了 Rust 的所有权系统和异步生态。从 Cargo.toml 可以看出,整个项目采用 workspace 组织,核心模块包括:
turso/
├── core/ # 核心数据库引擎
├── sqlite3/ # SQLite C API 兼容层
├── parser/ # SQL 解析器
├── cli/ # 交互式命令行 (tursodb)
├── bindings/ # 多语言绑定
│ ├── rust/ # Rust 原生绑定
│ ├── javascript/ # Node.js 绑定 + WASM
│ ├── python/ # Python 绑定
│ ├── go/ # Go 绑定
│ ├── java/ # Java JDBC 绑定
│ └── dotnet/ # .NET 绑定
├── extensions/ # 扩展模块
├── sync/ # 数据同步
└── testing/ # 测试套件
传统 SQLite 使用单个写锁模型,写操作串行执行。Turso 通过 BEGIN CONCURRENT 引入 MVCC,允许读写操作并发执行,大幅提升多线程场景下的写入吞吐量。这对边缘计算和高并发嵌入式场景尤为重要。
Turso 在 Linux 上支持 io_uring 异步 I/O,这是 Linux 5.1+ 引入的高性能异步 I/O 接口。相比传统的阻塞 I/O,io_uring 减少了系统调用开销,特别适合高吞吐量的数据库工作负载。
从 Cargo.toml 的 profile 配置可以看出 Turso 对不同场景的精细优化:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh
$ tursodb
Turso
Enter ".help" for usage hints.
Connected to a transient in-memory database.
turso> CREATE TABLE users (id INT, username TEXT);
turso> INSERT INTO users VALUES (1, 'alice');
turso> SELECT * FROM users;
1|alice
// Cargo.toml
// [dependencies]
// turso = "0.7.0-pre.10"
let db = Builder::new_local("sqlite.db").build().await?;
let conn = db.connect()?;
let res = conn.query("SELECT * FROM users", ()).await?;
# uv pip install pyturso
import turso
con = turso.connect("sqlite.db")
cur = con.cursor()
res = cur.execute("SELECT * FROM users")
print(res.fetchone())
// npm i @tursodatabase/database
import { connect } from '@tursodatabase/database';
const db = await connect('sqlite.db');
const stmt = db.prepare('SELECT * FROM users');
const users = stmt.all();
// go get turso.tech/database/tursogo
import (
"database/sql"
_ "turso.tech/database/tursogo"
)
conn, _ = sql.Open("turso", "sqlite.db")
defer conn.Close()
stmt, _ := conn.Prepare("select * from users")
rows, _ := stmt.Query()
Turso 最独特的功能之一是内置 MCP Server,让 AI 助手(如 Claude Code、Cursor)直接查询和操作数据库:
tursodb your_database.db --mcp
在 Claude Code 中快速配置:
claude mcp add my-database -- tursodb ./path/to/your/database.db --mcp
配置完成后,你可以直接对 AI 助手说:
MCP Server 提供 9 个工具,覆盖数据库的完整生命周期:打开数据库、列表表、描述表结构、执行查询、插入/更新/删除数据、以及 Schema 变更。
Turso 提供了完整的 JDBC 集成,可直接在 Spring Boot 或任何 Java 项目中使用:
<dependency>
<groupId>tech.turso</groupId>
<artifactId>turso</artifactId>
</dependency>
using Turso;
using var connection = new TursoConnection("Data Source=:memory:");
connection.Open();
connection.ExecuteNonQuery("CREATE TABLE t(a, b)");
var rowsAffected = connection.ExecuteNonQuery("INSERT INTO t(a, b) VALUES (1, 2), (3, 4)");
make docker-cli-build && make docker-cli-run
libSQL 是通过 fork SQLite 进行演进的,而 Turso Database 是用 Rust 完全重写的。Turso 团队认为重写路线能更好地利用 Rust 的安全保证和现代异步生态。目前 libSQL 已生产就绪,Turso Database 正在快速演进中。
Turso 已在多个生产环境中运行(Turso Cloud、Kin AI、Spice.ai),且经过了确定性模拟测试套件和 Antithesis 的严格测试。但项目仍标注为 Beta,建议对关键数据做好独立备份。
使用 BEGIN CONCURRENT 开启 MVCC 事务,支持多线程并发写入。对于多进程场景,可通过 .tshm sidecar 实现跨进程 WAL 协调。
静态加密(encryption at rest)目前标记为实验性功能。如果对数据安全性有极高要求,建议在应用层额外加密后再写入。
项目提供了 TPC-C、ClickBench 等标准基准测试,以及通过 Codspeed 和 Criterion 进行的性能测量。从 profile 配置可以看出团队对性能优化非常重视。
Turso Database 代表了数据库领域一个大胆的方向:不是修补一个有 20 年历史的 C 代码库,而是用现代语言和现代设计理念重新构建。Rust 的内存安全保证、原生异步支持、丰富的类型系统,为 SQLite 的进化提供了一个充满想象力的基础。
MCP Server 的内置支持更是一个亮点,预示着数据库与 AI 助手深度集成的新趋势。对于边缘计算、嵌入式场景、以及需要 SQLite 兼容但追求更高并发和现代特性的项目,Turso 值得密切关注。
项目地址:https://github.com/tursodatabase/turso 许可证:MIT
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。