告别 Electron 臃肿!30MB 的原生数据库客户端 GoNavi:AI + MCP 加持,还支持达梦、OceanBase 等国产库

告别 Electron 臃肿!30MB 的原生数据库客户端 GoNavi:AI + MCP 加持,还支持达梦、OceanBase 等国产库

一套客户端,航行全部数据源 —— 原生性能 · Agent 就绪 · 告别 Electron 膨胀。

项目地址https://github.com/Syngnat/GoNavi


一、为什么要关注 GoNavi?

用过 DBeaver、Navicat 或各种 Electron 系数据库 GUI 的同学应该都有体会:安装包动辄几百 MB、启动慢、内存占用高。本质原因是它们大多背着一个完整的 Chromium + Node 运行时。

GoNavi 换了一条技术路线:Go + Wails v2 + 系统 WebView,直接砍掉了 Chromium,二进制体积只有 约 30MB,启动快、内存轻。

常见 Electron 客户端 GoNavi
运行时 Chromium + Node Go + 系统 WebView
体积 动辄数百 MB 约 30MB
启动 偏重 更快
内存 基线高 更轻
AI / Agent 外挂或缺失 MCP + 多模型一等公民
数据源 以 RDBMS 为主 SQL · 缓存 · 向量 · 消息 · 国产库

更难得的是,它不只是"又一个 SQL 客户端",而是把 AI 和 MCP(Model Context Protocol)做成了一等公民,天然适配现在的 AI 编程工作流。

项目热度(截至 2026-07)

  • ⭐ Star:1,793,Fork:185
  • 📝 提交数:1,752+(dev 分支),几乎每天都在更新
  • 📅 2026 年 1 月底创建,半年时间快速成长
  • 📜 许可证:Apache-2.0,可放心商用

二、技术栈与整体架构

技术栈Go 1.24 · Wails v2 · React 18 · TypeScript · Vite · Ant Design 5 · Zustand · Monaco

整体架构一张图看懂:

┌──────────────────────────────────────────────────────────────────────┐
│  GoNavi 工作台                                                        │
│  ┌─────────────┐  ┌──────────────────┐  ┌─────────────────────────┐  │
│  │ 连接管理     │  │ Monaco SQL + AI  │  │ 虚拟滚动 DataGrid        │  │
│  │ SSH / 代理   │  │ 表结构上下文      │  │ 批量编辑 · 导出          │  │
│  │ 驱动代理     │  │ 快捷指令         │  │ 事务提交 / 回滚          │  │
│  └─────────────┘  └────────┬─────────┘  └─────────────────────────┘  │
│                            │                                         │
│              ┌─────────────▼─────────────┐                           │
│              │  Go 核心 · 审计 · 同步     │                           │
│              │  MCP HTTP · Web Server    │                           │
│              └───────────────────────────┘                           │
└──────────────────────────────────────────────────────────────────────┘

它提供 三种运行形态

  1. 桌面端(主打):Wails 打包,跨 macOS(AMD64/ARM64)、Windows、Linux(WebKitGTK 4.0/4.1)
  2. Web Server(实验性):同一套 Go 后端 + React 前端,通过浏览器访问,支持 Docker / K8s / Helm / Podman 部署
  3. MCP Server:独立容器化部署,把数据库结构工具交给 AI Agent

三、核心亮点逐个看

3.1 懂表结构的 AI 助手 🤖

这是 GoNavi 和传统数据库客户端最大的差异点:

  • 支持 OpenAI、Gemini、Claude 及任意 OpenAI 兼容 API
  • 自动把当前库表结构注入对话上下文,AI 不再"瞎猜"字段名
  • 快捷指令:生成 SQL、解释 SQL、优化 SQL、表设计评审
  • 关键安全设计:连接信息和密码始终留在本机,不会发给模型

3.2 MCP 原生支持,Agent 就绪 🔌

现在大家都在用 Claude Code、Codex 这类编码 Agent 写代码,但 Agent 拿不到数据库结构就只能靠猜。GoNavi 的解法是:

  • 一键把 MCP Server 装到 Claude Code / Codex
  • 或以 Streamable HTTP 方式提供给远端 Agent
  • 安全默认值做得很好:远端默认 schema-only,不暴露 execute_sql;变更类 SQL 必须显式设置 allowMutating=true

一句话总结它的理念:把结构工具交给 Agent,而不是把密钥交出去。

# MCP Server 容器化部署
cp docker.mcp-server.env.example docker.mcp-server.env
docker compose --env-file docker.mcp-server.env -f docker-compose.mcp-server.yml up -d

3.3 数据源覆盖面极广,国产库是杀手锏 🗄

内置 12 种(开箱即用):

MySQL · GoldenDB · PostgreSQL · Oracle · Redis · Chroma · Qdrant · Milvus · RocketMQ · MQTT · Kafka · RabbitMQ

可选驱动代理 20+ 种(在驱动管理中按需安装):

MariaDB · Doris · StarRocks · SQL Server · SQLite · DuckDB · MongoDB · ClickHouse · Trino · Elasticsearch · TDengine · IoTDB · 达梦 · 人大金仓 · 瀚高 · 海量 · openGauss · GaussDB · OceanBase 等,还支持 Custom Driver + DSN 自定义扩展

注意看加粗部分——国产数据库支持矩阵相当完整,对做信创、政企项目的同学来说,这可能是目前开源客户端里最省心的选择之一。关系型、缓存、向量库、消息队列、时序库全部在一个工作台里打通。

3.4 大数据量下依然流畅 ⚡

  • 虚拟滚动 DataGrid,大结果集不卡顿
  • 单元格编辑、批量增删改、事务提交/回滚
  • 大字段弹窗查看、按查询智能切换读写
  • 导出:CSV / XLSX / JSON / Markdown
  • Monaco 编辑器 + 库/表/字段上下文补全

3.5 可观测与企业级交付 🛡

  • SQL 执行日志(含耗时)
  • 审计中心:默认脱敏、保留策略、可导出
  • 连接支持 SSH 隧道、代理、JSON 导入导出
  • 推 Tag 自动触发 GitHub Actions 多架构构建发布

四、快速上手

方式一:直接下载(推荐)

前往 Releases 下载对应平台的安装包(macOS AMD64/ARM64 · Windows AMD64 · Linux WebKitGTK 4.0/4.1)。

方式二:源码构建

前置要求:Go 1.21+、Node.js 18+、Wails CLI

go install github.com/wailsapp/wails/v2/cmd/wails@v2.11.0

git clone https://github.com/Syngnat/GoNavi.git
cd GoNavi

wails dev      # 开发模式,完整热重载
wails build    # 构建,产物在 build/bin

方式三:Web Server 模式(实验性)

cp docker.web-server.env.example docker.web-server.env
# 设置 GONAVI_HOST_DATA_ROOT 为绝对路径
docker compose --env-file docker.web-server.env -f docker-compose.web-server.yml up -d
# 浏览器打开 http://127.0.0.1:34116

首次访问会进入 /setup 设置管理员密码,支持 Google Authenticator 二次验证、登录限流。

⚠️ 官方明确提醒:不要把未加固的 Web 入口直接暴露到公网,生产环境请配合反向代理 + HTTPS。

常见坑

  • Windows:依赖 Microsoft Edge WebView2 运行时,内网/精简系统/LTSC 可能未预装,会白屏或闪退,需手动安装 Evergreen Standalone Installer
  • macOS:提示"应用已损坏"时执行 sudo xattr -rd com.apple.quarantine /Applications/GoNavi.app
  • Linux:需安装 WebKitGTK(libwebkit2gtk-4.1-04.0-37

五、客观评价

👍 优势

  1. 定位精准:Electron 客户端的体积/性能痛点真实存在
  2. AI + MCP 集成走在同类工具前面,且安全设计克制(schema-only 默认、密钥不出本机)
  3. 国产数据库支持矩阵完整,信创场景友好
  4. 迭代速度惊人:半年 1700+ 提交,文档中英双语齐全

👀 需要注意

  1. 主要由个人开发者维护,长期维护性有待观察(不过社区共建计划已经启动)
  2. Web Server 模式仍是实验性,近期修复过登录锁定绕过等安全问题,生产环境暴露需谨慎
  3. Windows 桌面端依赖 WebView2 运行时,离线内网环境需额外准备安装包

🎯 适合人群

  • 受够了几百 MB 数据库客户端的开发者
  • 想让 Claude Code / Codex 等编码 Agent 安全读取库表结构的 AI 工作流用户
  • 有达梦、OceanBase、openGauss 等国产数据库管理需求的信创项目团队
  • 需要同时管理 SQL、Redis、Kafka、Milvus 等多类数据源的全栈/运维同学

六、总结

GoNavi 用 Go + Wails 证明了数据库客户端不必是"套壳浏览器":30MB 的体积做到了主流工具的核心功能,还前瞻性地押注了 AI + MCP 这条路线。如果你正在寻找一个轻快、现代、对国产库友好的数据库工作台,值得一试。

如果觉得项目不错,别忘了给作者点个 Star ⭐

posted @ 2026-07-27 10:52  康子呢  阅读(3)  评论(0)    收藏  举报