概述:第 5 轮挖掘,刻意绕开 LLM 应用层的红海,往更底层、更长寿的方向走——嵌入式数据库与本地数据工具。这一层的项目有几个共同气质:零依赖、单文件、进程内运行,却撑起了无数上层产品的地基,是典型的「卖铲子」生意。本期 8 个仓库横跨 OLAP 引擎、向量检索、分布式教学数据库,其中 3 个 Star 千级以下的小而美之作。文内 Star 数为撰写时量级参考,请以仓库页面实时数据为准。
一句话定位:进程内的分析型 SQL 引擎,「数据分析界的 SQLite」。
它解决的痛点:想跑个聚合查询,不想装 Hadoop/Spark,也不想开 Postgres 实例。DuckDB 是一个嵌入式的列式 OLAP 数据库,C++ 编写,编译后就是单个可执行文件,pip install duckdb 十秒上手。
核心亮点有三层。其一,列式存储 + 向量化执行,聚合扫描速度远超行式方案;其二,对文件格式的亲和度做到极致——SELECT * FROM 'data.parquet' 直接查 Parquet/CSV/JSON 文件,配合 httpfs 扩展还能直接查 S3 上的数据湖,本地文件秒变数据库表;其三,SQL 方言非常现代化,支持 GROUP BY ALL、FROM 子句前置写法这类「人类友好」语法,还与 pandas、Arrow 无缝互转。官方还推出了云端版 MotherDuck,商业化路径清晰。
上手难度:⭐
适用人群:数据分析师、需要给产品内嵌查询能力的后端。变现思路:基于 DuckDB 封装面向垂直行业的本地数据分析工具(电商报表、日志审计),或做 ETL 中间件,这是被验证过无数次的产品路径。
一句话定位:把完整的 Postgres 编译成 3MB 的 WASM,塞进浏览器和边缘环境。
它解决的痛点:前端应用想要「真数据库」而不是 localStorage 的模拟品;边缘函数想要 Postgres 却不想付网络往返的延迟。ElectricSQL 团队把 Postgres 编译为 WebAssembly,整个数据库就是一个可导入的模块——浏览器、Node、Bun、Deno 全都跑得动。
核心玩法:new PGlite() 即得一个完整 Postgres,支持真正的 SQL、事务、索引,还能挂载 pgvector 扩展做向量检索。最有想象力的是它的响应式查询(Live Queries)与同步引擎组合——本地一个真 Postgres,数据变更自动推送,天然的 local-first 应用底座。离线可用的协作文档、边缘侧的 AI Agent 状态存储,都是它的主场。
上手难度:⭐⭐
适用人群:做离线优先应用的前端/全栈工程师。变现思路:local-first SaaS(离线可用表单、私有笔记、工单系统),架构上「本地 PGlite + 云端同步」几乎就是现成的产品骨架。
一句话定位:一个 C 写的 SQLite 扩展,让任何能跑 SQLite 的地方都能做向量检索。
它解决的痛点:端侧 RAG 现在被各种向量数据库绑架——要么起服务,要么拖 PyTorch。作者 Alex Garcia 的思路是:SQLite 能跑在哪,向量检索就应该能在哪用。它由纯 C 编写、零依赖,通过加载扩展的方式给 SQLite 增加 vec0 虚拟表,Python/Node/Ruby/Go/Rust/浏览器 WASM 全平台通吃。
实现上走的是暴力扫描 + 量化路线(支持 int8 和 bit 量化),不追求亿级规模的 ANN 索引,但百万级以下向量在单机上毫秒级出结果,还支持分区键(partition key)和元数据过滤——对个人知识库、本地文档问答这种量级,刚好够用且极其轻量。项目曾获 Mozilla Builders 计划资助,社区口碑扎实。搭配 sqlite-vec + 一个本地 embedding 模型,就是一个不需要任何服务器的本地知识库。
上手难度:⭐⭐
适用人群:做桌面 AI 应用、端侧 RAG 的开发者。变现思路:面向律所/诊所等隐私敏感行业的本地文档问答产品,「数据不出机器」本身就是卖点。
一句话定位:把 ClickHouse 变成一个进程内函数调用。
它解决的痛点:DuckDB 之外,OLAP 界还有另一个性能怪兽 ClickHouse,但正常部署要一堆组件。chDB 由 ClickHouse 官方团队参与维护,把无状态版 ClickHouse 引擎封装成嵌入式库,Python 绑定最为成熟,Go/Node/Rust/Bun 也有官方绑定。
用法极其简单:chdb.query("SELECT ... FROM 'events.parquet'", "CSV") 一行完成查询,直接吃 Parquet/CSV/JSON 文件,也能查 pandas DataFrame 和 Arrow 表。它继承了 ClickHouse 引以为傲的向量化执行引擎,在大宽表聚合场景常常比 DuckDB 更快,两者形成了有趣的互补:日志级海量事件分析选 chDB,复杂分析型 SQL 选 DuckDB。后续版本加入的持久化 server 模式,让它从「查询函数」进化成了可嵌入的完整数据库。
上手难度:⭐⭐
适用人群:日志分析、用户行为分析场景的后端。变现思路:做嵌入式即席查询网关或 Serverless OLAP 服务,客户数据留在自有进程内,天然适合私有化交付。
一句话定位:数据库界的「万能瑞士军刀」——一个二进制连遍几十种数据库。
它解决的痛点:DBA 和全栈的机器上往往装着 psql、mycli、sqlplus、clickhouse-client……每家客户端语法还不一样。usql 用 Go 写了一个 psql 风格的通用 CLI,MySQL、Postgres、SQLite、Oracle、SQL Server、ClickHouse、Redis、CSV 文件等数十种数据源,全部用同一套 \c、\dt、\l 命令操作,还带语法高亮和多种输出格式。
单二进制分发是它最务实的优点:拷进跳板机就能用,应急排障时不用现场装驱动。对同时维护多技术栈团队的人,学习成本一次性摊销完毕。它不追求 GUI 的花哨,就是把「连接-查询-导出」这三件事做到极致的工具型项目。
上手难度:⭐
适用人群:运维、DBA、接手遗留系统的顾问。变现思路:适合作为自研运维平台/数据库网关的底层组件做二次开发,或打包成企业内部工具链的商业支持服务。
一句话定位:Rust 生态里被低估的 LSM 嵌入式 KV 引擎,为写密集场景而生。
它解决的痛点:Rust 圈做嵌入式存储,大家默认提 sled 或 redb,但写吞吐要求高的场景其实缺少一个现代选项。Fjall 是纯 safe Rust 实现的 LSM 架构存储引擎,官方基准中写入性能表现突出,API 设计干净,还提供了类似 column family 的「分区(Partition)」概念,方便在同一实例里隔离不同业务数据。
注意它的定位是「存储引擎」而非完整数据库——没有 SQL、没有网络层,你拿到的是 insert/get/range 这样的原语。这既是门槛也是价值:想要自定义数据模型(时序存储、消息队列的持久层、缓存服务),自己往上搭,比改造一个全功能数据库干净得多。代码组织清晰,连 LSM 树实现都拆成了独立 crate,想学 LSM 原理的话源码本身就是教材。
上手难度:⭐⭐⭐
适用人群:Rust 中间件开发者、存储引擎爱好者。本期最被低估——Star 数百,但工程质量和活跃度远高于知名度。
一句话定位:Go 生态里自带 Redis 式数据结构的嵌入式 KV 存储。
它解决的痛点:Go 应用想要持久化的 list/hash/set/zset 结构,通常只能 Redis 起服务 + 自己处理持久化。NutsDB 是纯 Go 实现的嵌入式 KV 存储,最大特色是在 KV 之上封装了 string、list、hash、set、sorted set 等数据结构,相当于把 Redis 的常用模型搬进了你的进程。同时支持完全可串行化事务、TTL 过期和范围迭代。
架构上采用内存索引 + 顺序写盘的组合:读写都走内存索引保证速度,数据以追加写方式落盘保证可靠。对于 IM 消息存储、边缘网关配置中心、单机版队列这类「要结构化数据但不想引外部依赖」的场景,它是一个成本极低的答案。中文社区项目,文档对中文用户友好。
上手难度:⭐⭐
适用人群:Go 后端、嵌入式场景开发者。变现思路:集成进 Go 桌面工具或边缘计算盒子做存储层,省掉一个 Redis 运维成本就是最直接的商业说服点。
一句话定位:一个为「读懂分布式数据库」而生的 Rust 教学 SQL 数据库。
它解决的痛点:TiDB、CockroachDB 的源码读不动,市面上缺少一个体量适中、五脏俱全的参考实现。toyDB 出自 CockroachDB 工程师 Erik Grinaker 之手,用数千行 Rust 实现了分布式 SQL 数据库的完整栈:自研 SQL 解析器与执行器、MVCC 多版本并发控制、可串行化快照隔离(SSI)、以及基于 Raft 的多节点复制,默认就能以 Docker 起一个 5 节点集群玩故障演练。
它明确声明不用于生产,但这恰恰是价值所在——每一层都做了「够用就好」的简化,没有生产系统的噪音,读源码的路径非常线性:SQL 进来怎么解析、事务怎么加版本、Raft 日志怎么复制,一条链读完。配套文档解释了各模块的设计取舍,是准备数据库方向面试或转存储岗的绝佳跳板。
上手难度:⭐⭐⭐(作为学习材料)
适用人群:后端工程师、计算机专业学生。变现思路:天然的知识付费素材——源码解析专栏、分布式系统训练营的内 comprise 实例。
| 仓库 | 类型 | 语言 | Star 量级 | 上手难度 | 最佳场景 |
|---|---|---|---|---|---|
| DuckDB | 嵌入式 OLAP | C++ | 3 万+ | ⭐ | 本地数据分析 |
| PGlite | WASM Postgres | C/TS | 万级 | ⭐⭐ | local-first 应用 |
| sqlite-vec | 向量扩展 | C | 5k 左右 | ⭐⭐ | 端侧 RAG |
| chDB | 嵌入式 OLAP | C++ | 数千 | ⭐⭐ | 日志/事件分析 |
| usql | 通用 CLI | Go | 近万 | ⭐ | 多库运维 |
| Fjall | LSM 引擎 | Rust | 数百 | ⭐⭐⭐ | 自研存储底座 |
| NutsDB | 嵌入式 KV | Go | 千余 | ⭐⭐ | Go 应用持久层 |
| toyDB | 教学数据库 | Rust | 千余 | ⭐⭐⭐ | 读源码学分布式 |
quadrantChart
title 上手难度 vs 商业/学习价值
x-axis 低门槛 --> 高门槛
y-axis 直接使用价值 --> 深度二开价值
quadrant-1 架构级玩家区
quadrant-2 黄金区:易用且可深挖
quadrant-3 轻量尝鲜区
quadrant-4 拿来即用区
DuckDB: [0.15, 0.6]
PGlite: [0.3, 0.7]
sqlite-vec: [0.35, 0.65]
chDB: [0.35, 0.55]
usql: [0.12, 0.25]
Fjall: [0.7, 0.8]
NutsDB: [0.5, 0.6]
toyDB: [0.85, 0.9]
[!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 等场景全覆盖。
