首页 › weekly › 重写经典:8个硬核开源造轮子

重写经典:8个硬核开源造轮子

概述:本期换了个挖掘思路——不再追热点赛道,而是盯住一类“硬核重写”项目:有一批开发者不满于 Git 的工作流、SQLite 的同步架构、Postgres 的笨重部署,干脆从内核层把经典软件重造一遍。这类项目代码密度高、设计文档一流,是学习系统设计的活教材,也有不少能直接接上 local-first、边缘计算等商业叙事。本期共 8 个仓库:版本控制 3 个(jj、GitButler、Sapling)、数据库 4 个(Limbo、PGlite、sqlite-vec、Harlequin)、数据管道 1 个(trdsql),其中 Harlequin 和 trdsql 是典型的数千星级小而美。文中 Star 数为成稿时量级估算,以仓库主页实时数据为准。


1. jj-vcs/jj | 约 1.5 万+ Star | 活跃更新

一句话定位:一个与 Git 仓库完全兼容、但把“提交”这个概念彻底重新设计的版本控制系统,解决的是“Git 太难用但大家都忍着”这个老问题。

作者 Martin von Zweigbergk 是版本控制领域的老兵(曾深度参与 Mercurial 开发)。jj 最激进的设计是:没有暂存区。你做的每次修改自动形成一个提交,工作副本本身就是一次 commit——想“部分提交”?用 jj split 交互式拆分即可,不存在 git add -p 那套心智负担。每个提交有一个独立的 change-id,amend、rebase 之后它都不变,历史漂移不再是噩梦。冲突被设计成一等公民:产生冲突的提交可以正常提交和推送,之后再用 jj resolve 处理,不会卡住整条流水线。对个人用户的杀手锏是 jj undo——几乎所有操作都能撤销。它可以直接 colocate 在现有 Git 仓库上,Git 命令和 jj 命令操作同一个仓库互不干扰,迁移成本几乎为零。

上手难度:⭐⭐⭐⭐(概念重构需要时间,但官方教程写得极好)

适用人群:被 Git 的 index、rebase、reflog 折磨过的所有开发者;做类 Git 产品想要底层内核的团队。二次开发方向:基于 jj 做可视化客户端、AI 自动提交整理器。

2. gitbutlerapp/gitbutler | 约 1.5 万 Star | 活跃更新

一句话定位:GitHub 联合创始人 Scott Chacon 出品的新一代 Git 桌面客户端,用“虚拟分支”解决多任务并行开发时分支切来切去的痛苦。

传统 Git 一次只能检出一个分支,改到一半来个线上 bug 就得 stash 折腾半天。GitButler 的虚拟分支(Virtual Branches)允许你在同一个工作目录里同时维护多个分支,hunk 级别地决定每处修改归哪个分支,随时分别推送 PR。这实际上是客户端层的“把 Git 操作模型重写一遍”。技术栈是 Rust + Tauri,前端 TypeScript,桌面端资源占用远低于 Electron 系。内置 AI 生成 commit message、分支健康检查等辅助功能。它是本期唯一已经商业化运营的项目(免费+付费团队版),其定价页面和功能矩阵本身就是一份“Git 工具如何变现”的参考答案。对于想研究 Tauri 大型应用架构的人,这个仓库的代码组织也值得通读。

上手难度:⭐⭐(图形界面,装上即用)

适用人群:经常同时开多条工作线的全栈/应用开发者;想做开发者工具商业化的人(研究其免费/付费分界线的绝佳样本)。

3. facebook/sapling | 约 6 千 Star | 活跃更新

一句话定位:Meta 开源、支撑 Instagram 级别巨型 monorepo 的可扩展版本控制系统,是 jj 的“工业界表亲”。

如果说 jj 是社区对小团队的回答,Sapling 就是超大组织的答案:Facebook 把内部用了多年的 Mercurial 定制版(Sapling SCM)开源,其客户端 sl 命令兼容操作 Git 仓库,服务端则专为百万级文件、千万级提交的 monorepo 设计——部分克隆、按需拉取、智能日志(Smartlog,只显示和你相关的历史)。它和 jj 的关系很有趣:jj 的作者与 Sapling 团队长期互相借鉴,两者在“冲突一等公民”“无暂存区”等理念上高度趋同,是观察“Git 之后版本控制该怎么演化”的一对活标本。缺点是文档偏工程化、社区生态远小于 jj,更适合作为 monorepo 方案的调研对象而非日常替换。

上手难度:⭐⭐⭐⭐⭐(面向大型组织架构,个人收益有限)

适用人群:正在规划 monorepo 的平台工程团队;研究大规模代码管理的技术管理者。

4. tursodatabase/limbo | 数千至万级 Star | 增长迅猛

一句话定位:Turso 团队用 Rust 从零重写的 SQLite 兼容引擎,目标是“SQLite 的接口,云原生的心脏”。

SQLite 是世界上部署最广的数据库,但它诞生于 2000 年,同步 IO、单写入者、纯 C。Turso(EdgeDB 之外嵌入式数据库商业化的明星公司)决定正面重写:Limbo 用 Rust 实现,原生 async,底层可选 io_uring,还编译到 WASM 直接跑在浏览器里。最有含金量的是其工程方法论:为了敢宣称“兼容 SQLite”,团队引入确定性仿真测试(DST)大规模 fuzz 自身行为与 SQLite 的一致性,并把过程写成了一系列高质量技术博客——即使你不打算用它,这套“如何安全重写一个 25 年历史的数据库”的思路也非常值得学习。项目迭代极快,API 稳定性请以官方文档为准。

上手难度:⭐⭐⭐⭐(开发期项目,适合尝鲜与跟进)

适用人群:Rust 系统编程学习者、边缘数据库/嵌入式存储方向工程师。商业逻辑已被 Turso 自身验证:开源内核 + 云服务收费。

5. electric-sql/pglite | 约 1 万+ Star | 活跃更新

一句话定位:把整个 PostgreSQL 编译成约 3MB 的 WASM,塞进浏览器、Node 和边缘运行时的“口袋 Postgres”。

Limbo 是重写,PGlite 则是“搬运”:ElectricSQL 团队把 Postgres C 代码编译为 WASM,让你在前端代码里 new PGlite() 就拥有一颗真 Postgres——不是 SQLite 也不是玩具,支持完整的 SQL 方言、扩展(包括 pgvector 向量检索),数据可持久化到 IndexedDB 或本地文件。它直接催生了一类新应用:纯前端部署、无需任何服务端数据库的 AI 对话产品(向量检索在本地完成)、离线优先的表单与笔记应用。配合 ElectricSQL 主产品的同步引擎,可以做成 local-first 架构里“本地真 Postgres + 后台异步同步”的方案。对独立开发者来说,这几乎是无服务器成本上线数据驱动应用的捷径。

上手难度:⭐⭐⭐(前端工程集成需要点功底,API 本身很简洁)

适用人群:前端全栈、AI 应用开发者、local-first 产品探索者。变现方向:离线优先 SaaS、隐私敏感的本地数据处理工具。

6. asg017/sqlite-vec | 约 5 千 Star | 活跃更新

一句话定位:零依赖纯 C 的 SQLite 向量检索扩展,让“任何能跑 SQLite 的地方”都能做 RAG——从树莓派到浏览器。

作者 Alex Garcia 是 SQLite 扩展社区的标志性人物。sqlite-vec 是其 sqlite-vss 的继任者,吸取了前任依赖 Faiss、难以编译的教训:这次的答案是纯 C、零依赖、单文件,sqlite3 CLI 一行 .load 即可加载,Python、Node、Rust、乃至浏览器里的 sql.js 都能用。提供 vec0 虚拟表和 vec_distance_L2、vec_distance_cosine 等函数,支持 float32、int8 与二进制量化,搜索是暴力精确检索——它坦率地不做 ANN 索引,目标场景就是百万级以下的本地向量库。这恰好覆盖了绝大多数个人 RAG、设备端 AI 的真实规模。如果你的产品要“离线也能查知识库”,这个几百 KB 的扩展可能是最省事的答案。

上手难度:⭐⭐(会写 SQL 就会用)

适用人群:本地 RAG 工具开发者、设备端 AI 工程师。二次开发方向:包一层 ANN 索引或做成各语言 ORM 插件均有生态空位。

7. tconbeer/harlequin | 约 4 千 Star | 活跃更新

一句话定位:一条 pip install harlequin 就能装好的终端 SQL IDE,DuckDB/SQLite 用户的数据工作台。

这是本期最典型的小而美:作者 Ted Conbeer 基于 Textual 框架做的 TUI 应用,打开就是三栏布局——库表树、编辑器、结果网格,支持多查询分 Tab 缓存结果、查询历史、导出 CSV/Parquet。默认内置 DuckDB 和 SQLite 适配器,社区还提供 MySQL、Postgres 等适配器插件,架构上把“连接器”做成可插拔生态。对于经常在终端里对着 DuckDB 分析数据文件的人来说,它填补了“psql 太素、DBeaver 太重”之间的空白,启动不到一秒。仓库代码规模不大、结构清晰,是学习 Textual 构建 TUI 应用的优秀参考实现,也证明了 Textual 生态完全可以承载生产力工具级别的作品。

上手难度:⭐(会用 vim 基本操作即可)

适用人群:数据分析师、终端原教旨主义者、Textual/TUI 开发学习者。

8. noborus/trdsql | 约 4 千 Star | 持续维护

一句话定位:日本开发者 noborus 写的小工具——用 SQL 直接查询 CSV/JSON/LTSV 文件,一行命令完成数据切片。

trdsql -ih "SELECT name, price FROM test.csv WHERE price > 100"

装好就能对任意 CSV 写 SQL,自动推断列类型,支持 JSON、LTSV、TBLN 输入,结果可导出为 CSV/JSON/Markdown/At 类表格。更进阶的玩法是它建立在 Go 的 database/sql 之上:除了内置 SQLite 引擎,还能挂载 PostgreSQL/MySQL 连接,于是你可以“从 CSV 读、写进 Postgres”,或跨两个数据库做 join——轻量 ETL 就这么有了。没有 Web 界面、没有配置文件,一个二进制文件走天下,正是 Unix 哲学的现代延续。相比 q、csvkit 等同类老工具,trdsql 的优势在引擎可替换和输出格式的丰富度。

上手难度:⭐(会 SELECT 就能用)

适用人群:运维、后端、所有“拿到个 CSV 想赶紧查一下”的人。二次开发方向:嵌进 Go 服务做文件数据导入预处理层。


本期横向对比

仓库 领域 Star 量级 上手难度 最佳场景
jj-vcs/jj 版本控制 ~1.5万+ ⭐⭐⭐⭐ 日常 Git 替代
gitbutlerapp/gitbutler 版本控制 ~1.5万 ⭐⭐ 多分支并行开发
facebook/sapling 版本控制 ~6千 ⭐⭐⭐⭐⭐ 超大 monorepo
tursodatabase/limbo 数据库内核 数千~万级 ⭐⭐⭐⭐ 边缘/嵌入式存储
electric-sql/pglite 数据库 ~1万+ ⭐⭐⭐ 纯前端数据库应用
asg017/sqlite-vec 数据库扩展 ~5千 ⭐⭐ 本地 RAG
tconbeer/harlequin 数据工具 ~4千 ⭐ 终端 SQL 分析
noborus/trdsql 数据管道 ~4千 ⭐ CSV/JSON 即席查询

本期项目图谱

mindmap
  root((重写经典))
    版本控制
      jj 无暂存区 可撤销
      GitButler 虚拟分支
      Sapling 巨型monorepo
    数据库内核
      Limbo Rust重写SQLite
      PGlite 浏览器里的Postgres
      sqlite-vec 本地向量检索
    即席数据工具
      Harlequin 终端SQL IDE
      trdsql 用SQL查CSV

本期之最

这一期项目的共同气质是:不追风口,而是盯着那些“所有人都觉得该有人重写、却一直没人敢动手”的底层设施。对想深入系统编程的人来说,这批仓库的 issue 区、设计文档和 RFC 往往比代码本身更宝贵。

参考来源

  1. jj-vcs/jj — GitHub 仓库 — jujutsu 官方仓库及 官方文档,含设计理念与 Git 兼容说明
  2. gitbutlerapp/gitbutler — GitHub 仓库 — GitButler 客户端源码,官网 gitbutler.com 有虚拟分支白皮书
  3. facebook/sapling — GitHub 仓库 — Sapling SCM 官方仓库与架构文档
  4. tursodatabase/limbo — GitHub 仓库 — Turso 的 SQLite 重写项目,技术博客系列见 Turso 官网
  5. electric-sql/pglite — GitHub 仓库 — WASM 版 Postgres,官网 pglite.dev
  6. asg017/sqlite-vec — GitHub 仓库 — SQLite 向量扩展,作者博客有设计长文
  7. tconbeer/harlequin — GitHub 仓库 — 终端 SQL IDE,文档见 harlequin.sh
  8. noborus/trdsql — GitHub 仓库 — SQL 查询 CSV/JSON 命令行工具,README 含丰富示例

[!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 等场景全覆盖。

51学通信知识星球海报-扫码加入