惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy International News Feed
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale
Recorded Future
Recorded Future
爱范儿
爱范儿
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
AWS News Blog
AWS News Blog
T
Threatpost
博客园 - 叶小钗
Recent Announcements
Recent Announcements
C
Check Point Blog
H
Heimdal Security Blog
量子位
G
GRAHAM CLULEY
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cyberwarzone
Cyberwarzone
Engineering at Meta
Engineering at Meta
L
Lohrmann on Cybersecurity
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Cybersecurity and Infrastructure Security Agency CISA
The Last Watchdog
The Last Watchdog
B
Blog
T
Tor Project blog
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
T
Tenable Blog
aimingoo的专栏
aimingoo的专栏
P
Palo Alto Networks Blog
Vercel News
Vercel News
V
Visual Studio Blog
The Register - Security
The Register - Security
NISL@THU
NISL@THU
Spread Privacy
Spread Privacy
GbyAI
GbyAI
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
T
Troy Hunt's Blog
雷峰网
雷峰网
Security Latest
Security Latest
L
LINUX DO - 最新话题
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Scott Helme
Scott Helme
S
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
美团技术团队

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 你要加油呐 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽
Turso Database:用 Rust 重写 SQLite 的野心与实现
Cheman · 2026-06-20 · via BlogFinder

今天在 GitHub Trending 上看到一个野心勃勃的项目:Turso Database,一个用 Rust 从零重写的 SQLite 兼容数据库,目标是成为 SQLite 的下一代进化版本。

一、项目概述

Turso Database 由 Turso 团队开发,是一个进程内 SQL 数据库,完全兼容 SQLite 的 SQL 方言、文件格式和 C API。与 libSQL(通过 fork SQLite 演进而来)不同,Turso 选择了一条更激进的道路——用 Rust 完全重写 SQLite,以获得更好的内存安全、原生异步支持和更强的可扩展性。

核心亮点包括:

  • SQLite 兼容性:SQL 方言、文件格式、C API 全兼容,可无缝替换 SQLite
  • BEGIN CONCURRENT:通过 MVCC(多版本并发控制)大幅提升写入吞吐量
  • 变更数据捕获(CDC):实时追踪数据库变更
  • 向量搜索:支持精确搜索和向量操作
  • 全文搜索:基于 tantivy 库实现高性能 FTS
  • 跨语言绑定:Go、JavaScript、Java、.NET、Python、Rust、WebAssembly 全覆盖
  • MCP Server 模式:内置 Model Context Protocol 服务器,AI 助手可直接操作数据库

目前项目处于 Beta 阶段(v0.7.0-pre.10),但已在生产环境中运行,支撑着 Turso Cloud、Kin AI 助手和 Spice.ai 等产品。

二、技术原理

架构设计

Turso 的架构设计充分考虑了 Rust 的所有权系统和异步生态。从 Cargo.toml 可以看出,整个项目采用 workspace 组织,核心模块包括:

  • core:数据库核心引擎,包含存储引擎、查询优化器、事务管理等
  • sqlite3:SQLite 兼容层,实现 C API 兼容
  • parser:SQL 解析器
  • sync/engine + sync/sdk-kit:数据同步引擎
  • extensions/:扩展系统(JSON、加密、CSV、正则、IP 地址、模糊匹配等)
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/        # 测试套件

MVCC 并发控制

传统 SQLite 使用单个写锁模型,写操作串行执行。Turso 通过 BEGIN CONCURRENT 引入 MVCC,允许读写操作并发执行,大幅提升多线程场景下的写入吞吐量。这对边缘计算和高并发嵌入式场景尤为重要。

异步 I/O 与 io_uring

Turso 在 Linux 上支持 io_uring 异步 I/O,这是 Linux 5.1+ 引入的高性能异步 I/O 接口。相比传统的阻塞 I/O,io_uring 减少了系统调用开销,特别适合高吞吐量的数据库工作负载。

编译与发布策略

从 Cargo.toml 的 profile 配置可以看出 Turso 对不同场景的精细优化:

  • release:标准发布,启用 thin LTO,保留调试信息
  • release-official:官方发布版本,启用 full LTO + 单 codegen unit,极致性能
  • lib-release:用于 SDK 库发布,禁用 LTO 以减小二进制体积(避免某些平台产生 150MB+ 的库文件)
  • fuzzing:针对模糊测试优化
  • antithesis:配合 Antithesis 确定性测试平台

三、安装与快速开始

安装 CLI

curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh

交互式 Shell

$ 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

Rust 集成

// 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?;

Python 集成

# uv pip install pyturso
import turso

con = turso.connect("sqlite.db")
cur = con.cursor()
res = cur.execute("SELECT * FROM users")
print(res.fetchone())

JavaScript 集成

// 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 集成

// 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()

四、使用方法与实战

MCP Server 模式(AI 助手集成)

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 助手说:

  • “显示数据库中所有表”
  • “查找投票数超过 100 的帖子”
  • “插入一条新用户记录”

MCP Server 提供 9 个工具,覆盖数据库的完整生命周期:打开数据库、列表表、描述表结构、执行查询、插入/更新/删除数据、以及 Schema 变更。

Java JDBC 集成

Turso 提供了完整的 JDBC 集成,可直接在 Spring Boot 或任何 Java 项目中使用:

<dependency>
    <groupId>tech.turso</groupId>
    <artifactId>turso</artifactId>
</dependency>

.NET 集成

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)");

Docker 运行

make docker-cli-build && make docker-cli-run

五、常见问题与解决方案

Turso 和 libSQL 有什么区别?

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