25 MB 装下 100 种数据库——dbx 的极简哲学
来源: t8y2/dbx — https://github.com/t8y2/dbx 语言: Rust 今日 Stars: 349 大小: 25 MB 单二进制 一句话: DBeaver 要 Java,TablePlus 要付费,dbx 只要 25 MB
25 MB 装下 100 种数据库——dbx 的极简哲学
来源: t8y2/dbx — https://github.com/t8y2/dbx
语言: Rust | 今日 Stars: 349 | 大小: 25 MB 单二进制
一句话: DBeaver 要 Java,TablePlus 要付费,dbx 只要 25 MB
一个老问题
每个程序员都经历过这个瞬间:新公司入职,拿到一台电脑,要连五种数据库——MySQL 看订单、PostgreSQL 看日志、Redis 看缓存、MongoDB 看用户画像、ClickHouse 看埋点。
然后你开始装工具。DBeaver 要装 Java 运行时,300 MB 起步。TablePlus 免费版只能开两个标签页。DataGrip 要 JetBrains 全家桶订阅。Navicat 贵到公司采购要审批三天。
最后你的电脑里多了三个 Java 版本、两个 Electron 应用、一个 Chromium 内核——加起来吃掉 5 GB 硬盘和 2 GB 内存,就为了查一条 SQL。
t8y2 的 dbx 想终结这件事。
25 MB 里装了什么
dbx 是一个用 Rust 写的数据库客户端,编译成单个二进制文件,25 MB。不需要 Java,不需要 Python,不需要 Chromium。下载、解压、运行——三步。
但这 25 MB 里塞进了:
- 100+ 数据库驱动:MySQL、PostgreSQL、SQLite、Redis、MongoDB、DuckDB、ClickHouse、SQL Server、Oracle、达梦、OceanBase、TiDB、KingbaseES……你能想到的它基本都支持
- 桌面端 + Docker + CLI + Web:四种部署形态,同一套功能
- AI SQL 助手:用自然语言描述需求,自动生成 SQL,带安全检查
- MCP Server:Claude Code、Cursor、Windsurf 等 AI 编码工具可以直接查你的数据库
- 消息队列管理:Kafka、RocketMQ、RabbitMQ、Pulsar、MQTT 一并管理
- ER 图、Schema Diff、执行计划、字段血缘:专业级数据工程功能
为什么 25 MB 能做到
关键在于技术选型。
Rust + 原生 GUI
DBeaver 用 Java + SWT,需要 JVM。TablePlus 用 Swift(macOS 原生)但跨平台要重写。dbx 用 Rust + Tauri(或类似的原生 UI 框架),编译成原生二进制,没有运行时开销。
Rust 的零成本抽象意味着:你不需要为抽象层付运行时税。100 个数据库驱动可以静态链接进同一个二进制,按需加载,不用的不占内存。
不捆绑浏览器
很多"跨平台"桌面工具(VS Code、Slack、Discord)用 Electron,本质是捆绑了一个 Chromium。每个 Electron 应用多吃 200 MB 内存。dbx 不走这条路——它用原生 UI 渲染,25 MB 就是 25 MB。
MCP 原生支持
这是 dbx 最有意思的设计。它不只是数据库客户端,还是一个 MCP Server。
MCP(Model Context Protocol)是 Anthropic 提出的协议,让 AI 工具能访问外部数据源。dbx 支持 MCP 意味着:
- Claude Code 可以直接查你的数据库,不需要你手动复制 schema
- Cursor 能在写代码时实时看到表结构
- 任何支持 MCP 的 AI 工具都能通过 dbx 连接你的数据库
一个跨域类比:瑞士军刀 vs 工具箱
dbx 的哲学让我想到瑞士军刀。
瑞士军刀的精髓不是"功能多"——你可以买一个 50 功能的瑞士军刀,但太重了没人用。真正的瑞士军刀是 91mm Victorinox Classic——只有刀、剪刀、指甲锉、镊子、牙签,但每一件都做到极致轻量。
dbx 做的是同一件事:不是把所有功能都塞进去,而是把每一件功能都做到极小。100 个数据库驱动不是 100 个完整客户端,而是 100 个精简到核心协议的连接器。AI 助手不是内置一个 LLM,而是支持你接 Claude、OpenAI 或本地 Ollama。
核心洞察:轻量不是"功能少",而是"每一份体积都花在刀刃上"。
和 DBeaver 的对比
| 维度 | DBeaver | dbx |
|---|---|---|
| 体积 | 300+ MB(含 JVM) | 25 MB |
| 运行时 | 需要 Java JRE | 无依赖 |
| AI 集成 | 插件 | 内置 + MCP |
| 消息队列 | 不支持 | 原生支持 |
| 中文数据库 | 部分支持 | 达梦、KingbaseES、OceanBase 等 |
| 价格 | 社区版免费 | 完全免费 |
| MCP Server | 无 | 内置 |
达梦和国产数据库的信号
dbx 支持达梦、KingbaseES、OceanBase、TiDB、openGauss、GaussDB、GoldenDB 等国产数据库,这透露了一个信号:国产数据库的生态正在被认真对待。
过去国产数据库的痛点是工具链匮乏——DBeaver 对达梦的支持半残,Navicat 要买企业版才支持。dbx 把国产数据库作为一等公民对待,说明开发者社区已经在认真解决这个缺口。
我的观察
dbx 最值得注意的不是它的体积,而是它对"AI 时代数据库工具应该长什么样"的回答。
传统数据库工具是给人用的——你打开 GUI、点表、看数据。dbx 的 MCP 支持意味着它在想另一件事:如果查数据库的主要用户从人变成了 AI agent,工具应该怎么变?
答案是把数据库变成一个协议端点。agent 不需要 GUI,它需要的是结构化的 schema 信息和安全的查询接口。dbx 的 MCP Server 就是这个端点——任何 AI 工具都能通过标准协议访问数据库,不需要每个工具自己写驱动。
核心洞察:当 AI agent 成为数据库的主要消费者时,数据库工具的形态会从"GUI 优先"变成"协议优先"。dbx 同时做了这两件事——GUI 给人,MCP 给 agent。
*GitHub: https://github.com/t8y2/dbx*