GitHub 趋势 · 第 63 期
它把 90+ 个数据库写进第一屏,把三档实现方式写在子目录里
#数据库客户端#MCP#驱动分层
先给结论。DBX 的 90+ 个数据库不是同一件事说了 90 遍,而是三档难度完全不同的「装上」方式:原生 Go/Rust Agent、多数要走 Java/JDBC 的那一批、以及由数据库厂商许可说了算的专有驱动。真正会拦住你的两件事都不在第一屏 —— MCP 那条通道不捆绑 JRE,也不捆绑任何专有驱动;而放驱动源码的 agents/ 目录,README 里写自己是 AGPL-3.0,链接指向的却是仓库根目录那份标准 Apache-2.0 全文。
一、这个位置为什么一直被卡着
数据库客户端的苦恼是固定的:DBeaver 要 Java 运行时、TablePlus 是 Freemium —— 这两句是 DBX 自己 README 里的对照原文,不是本文的评测。真正难受的是长尾:达梦、金仓、openGauss、虚谷、崖山、TDengine 这些库,在通用客户端里要么靠插件、要么靠自备驱动、要么干脆没有。DBX 打的正是这个位置:一个 20 MB 量级的安装包,一口气说支持 90+ 个数据库。
DBX 是个人账号 t8y2 下的开源项目,Apache-2.0,主语言 Rust,仓库创建于 2026-04-29,9 月 11 日刚发 v0.6.11。技术栈写得很直白:Tauri 2 做外壳、Rust 做后端、Vue 3 + shadcn-vue 做前端、CodeMirror 6 做编辑器,数据层用 sqlx / tiberius / redis-rs / mongodb 官方驱动。
- ▪四个交付通道:桌面端(macOS / Windows / Linux)、Docker 自托管的 Web 版、独立的 Rust MCP Server、以及给终端和脚本用的 CLI。
- ▪仓库里还有一张 42 行的驱动表、一整套 Java Agent 源码、一个 Nix flake、以及一份 handoff.md(后面细说)。
- ▪到今天为止 19,181 star / 1,859 fork / 1,362 个未关闭 issue / 90 个 watcher。
二、90+ 是怎么装上的:三档实现
README 用三段话才把 90+ 数完:第一段是 MySQL、PostgreSQL、SQLite、Redis、MongoDB、DuckDB 这些常见库;第二段写着 Agent-based profiles extend DBX to H2, Snowflake, Trino, PrestoSQL, Hive, DB2, Informix, Neo4j, Cassandra, BigQuery, Cloud Spanner, Kylin, SunDB, JDBCX 与自定义 JDBC 连接;第三段又是一长串。真正的分档要翻到 packages/mcp-server/README.md 才看得到 —— Oracle、DB2、Hive、Trino、Snowflake、SAP HANA、达梦在里面被明确归到另一档:走 DBX 的 Java Agent 基础设施,而不是原生驱动。
| 档位 | 代表 | 前置条件 | 出处 |
|---|---|---|---|
| 原生 Agent(Go / Rust) | cassandra、hive、iotdb、oracle、kingbase、tdengine、xugu、rabbitmq、rocketmq、zookeeper、etcd、etcd2 | 单个可执行文件,不需要 JRE | agents/README「Multi-JRE Support」 |
| Java / JDBC Agent(多数) | 达梦 DM8、Oracle、OceanBase-Oracle、DB2、Informix、Hive、Trino、Snowflake、SAP HANA、BigQuery、Caché | JRE 21,DBX 会自动下载并管理 | agents/README 同一节 |
| 厂商许可自决的那一批 | 需要专有 JDBC 驱动才能连的库 | MCP 的原生二进制不捆绑专有驱动与 JRE,要你先在 DBX 里装好 Agent;原文写着可用性取决于已安装驱动与该数据库厂商的许可条款 | packages/mcp-server/README |
- ▪官方自己的取向写得很清楚:只要存在成熟且许可兼容的原生驱动,就优先用 Go/Rust 原生 Agent,理由是「每个 Java Agent 哪怕闲置也要先付 JVM 的基线开销」。换个说法 —— 表里多数仍在 Java 那一档。
- ▪原生那一档原文点名了 13 个(用的是 such as,不是完整名单),其中 duckdb 甚至不在那张 42 行的表里 —— 那张表本身也不是全部。
- ▪两份文档在这里还能对不齐:金仓在 agents/README 的驱动表里写的是 gokb Go 原生 agent,而 MCP 文档把它和达梦、Oracle 一起归进了「Java agent infrastructure」。一个库落在哪一档,得看那个库自己那一行的驱动名,不能只看文档的章节标题。
- ▪多会话的 Java Agent 共用 HikariCP 连接池:默认每个连接身份最多 8 条物理连接、最小空闲 0;翻页游标与显式会话会一直占着连接,直到游标或会话关闭。
三、上手(命令取自 README 原文)
# 桌面端 brew install --cask dbx scoop bucket add dbx https://github.com/t8y2/scoop-bucket scoop install dbx winget install t8y2.dbx # 自托管 Web 版(多架构镜像,amd64 / arm64) docker run -d --pull=always --name dbx -p 4224:4224 -v dbx-data:/app/data t8y2/dbx:latest # 源码构建:Node >= 18 / pnpm / Rust >= 1.88 make
MCP 那条通道是独立的包,装上 DBX 桌面端并不会顺带装上它:
npm install -g @dbx-app/mcp-server
# 客户端配置(.mcp.json)
{
"mcpServers": {
"dbx": { "command": "npx", "args": ["-y", "@dbx-app/mcp-server"] }
}
}
CLI 是另一个包,目前仍是 TypeScript/Node.js 实现:
npm install -g @dbx-app/cli dbx connections list --json dbx query local "select 1" --json
上手前值得知道的几件事
- ▪许可有一处自相矛盾。仓库根目录的 LICENSE 是 11,357 字节的标准 Apache-2.0 全文,没有任何附加条款;而 agents/README.md 的 License 段写的是 AGPL-3.0,链接指向的恰好是根目录那份 Apache-2.0。agents/ 目录自己没有 LICENSE 文件,仓库里也没有第二份许可文件,正文里没有任何一处解释这个分歧。要拆出去二次分发、或者嵌进商业产品之前,这一条得先去问作者。值得一提的是,这批声明在 AGPL 下的驱动正好覆盖达梦、金仓、崖山、虚谷这些国产库。
- ▪MCP 不等于开箱即用。npm 上的 dbx-mcp 是 Rust 原生二进制(不依赖 better-sqlite3、不需要本地 Rust/Python 环境),但它不打包任何专有 JDBC 驱动与 JRE;那些库要你先在 DBX 桌面端把这套 Agent 装好。
- ▪权限是默认收紧的。MCP 的权限以 DBX 设置里的中央策略为准(只读 / 数据读写 / 完全访问),旧的环境变量不能再把它放宽;WHERE TRUE、WHERE 1 = 1、_id: {$exists: true} 这类条件一律按高风险处理,未知 Redis 命令直接失败关闭,SQL 文本默认既不进错误信息也不落日志(要临时开 DBX_MCP_DEBUG_SQL=1)。把 agent 接到生产库之前,这套默认值至少给了你一个能收紧的旋钮。
- ▪同一份文档里三个数字。MCP 子文档的 Features 一节写「18 MCP tools」,而它自己的英文工具表列了 19 行、中文工具表列了 17 行(少了两个存储过程与函数相关的工具)。三个数并存,谁也没错到致命,但说明这两张表没跟着正文一起维护。
- ▪20 MB 是最小的那一个。v0.6.11 的 29 个附件里,Windows arm64 安装包 21.8 MB、x64 安装包 22.8 MB,最接近那个数字;而 Linux AppImage 是 109.7 MB、x64 离线安装包 239.4 MB、Win7 / Server2012R2 专用离线包 177.8 MB。README 说的 single small binary,要挑对通道才成立。
- ▪开发机上跑之前看一句。README 自己提示:开发版可以和已安装的实例同时运行并共享本地数据(连接与历史),别在两个窗口里同时改同一个连接或全局设置。
最后一段留给仓库里那份 handoff.md。它 10,125 字节,由 opencode 导出,是一份写给下一个接手者的交接文档:当前任务、已完成清单、未完成清单、活动文件列表、阻塞点、关键决定,最后单列一节叫 For the Next AI,开头第一条就是 Read all Active Files before doing anything. —— 里面有两条自曝值得记一笔:这台 Windows 开发机上 Rust 全量编译会因为缺 OpenSSL / Perl 工具链失败或挂住;以及结构比对部署那条 partial DDL 失败路径还没有真机 MySQL / Oracle 的集成测试,当前只靠纯单元测试与 Web 结构化端到端测试覆盖。前者是环境问题,后者是覆盖缺口 —— 一份把缺口写在明处的交接文档,比一份只汇报完成的变更日志更接近真相。
我的判断
适合:需要一个能同时连关系库、Redis、MongoDB、消息队列,又不想为了它装一个 Java 运行时的人;想把数据库接给 Claude Code / Cursor 这类 agent,同时需要一份能明确收紧的权限策略的人;手上有一堆国产库或冷门库,需要 Agent 机制去兜的人。
不适合:要立刻上生产、且不能接受文档与许可声明还在漂移的团队;在意商用许可清晰度、又打算二次分发驱动代码的人;只连 MySQL / PostgreSQL 一个库、用命令行就够的人。
项目:t8y2/dbx · https://github.com/t8y2/dbx · 主页 https://dbxio.com
Star:19,181(GitHub REST API 实测)· Trending Rust 日榜快照 19,206(今日 +259)· Fork 1,859 · 未关闭 issue 1,362 · watcher 90
许可:仓库 Apache-2.0(LICENSE 11,357 字节标准全文);agents/README.md 声明 AGPL-3.0,本轮未在仓库内找到对应许可文件
语言 Rust · 主分支 main · 仓库体积 112,527 KB · 创建 2026-04-29 · 最后推送 2026-09-12
最新版本 v0.6.11(2026-09-11 发布,29 个附件,合计约 1.37 GB);另有 packages-v0.4.86(MCP / CLI 原生二进制)与 agents-v0.2.108(各数据库 Agent)两条独立发布轨道
tag 密度:一页 30 个 tag 从 v0.6.11 排到 v0.5.82
选题依据:全语言日 / 周 / 月三榜逐个剔除已写仓库后无可用新面孔,改抓 python / rust / go / typescript 四个分语言日榜;可用项里动量第一是 dbx(Rust 日榜 +259,19,206 star)。跳过的同榜未写项:vxcontrol/pentagi +250(自主渗透测试,合规敏感)、MHSanaei/3x-ui +66(代理面板)、farion1231/cc-switch +210(132,375 star,本轮动量低于 dbx 19%)、以及 nab138/iloader +50、RyanCodrai/turbovec +91、googleworkspace/cli +66 等已在池中躺了四期且动量数字未变动的存量项。上期文末预告的主题族合集仍欠着,原因见文末。
数据来源:GitHub Trending 官方页面与 GitHub REST API · 抓取时间:2026-09-12 17:02
留言区聊聊:你手上最难受的那个长尾数据库是什么?还有,如果你在用 AI agent 连数据库,权限是交给工具管的,还是靠单独开一个只读账号?
下期照上期说好的办:三榜如果还是零新面孔,就换一个主题族做横向合集(这一期本来排的是合集,四个分语言榜里冒出了动量第一的可用项,所以先把它写掉,合集顺延);如果分语言榜再出现高动量新项目,就回到单项目精读。
#GitHub趋势#数据库客户端#MCP