MCPcopy Index your code
hub / github.com/Syngnat/GoNavi

github.com/Syngnat/GoNavi @v0.8.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.8.4 ↗ · + Follow
13,258 symbols 44,142 edges 1,316 files 684 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GoNavi - 现代化轻量级数据库客户端

Go Version Wails Version React Version License Build Status Stars Downloads

语言: English | 简体中文

GoNavi 是基于 Wails (Go)React 构建的跨平台数据库管理工具,强调原生性能、低资源占用与多数据源统一工作流。

相比常见 Electron 客户端,GoNavi 在体积、启动速度和内存占用上更轻量。


项目简介

GoNavi 面向开发者与 DBA,核心目标是让数据库操作在桌面端做到“快、稳、统一”。

  • 原生性能架构:Wails(Go + WebView),降低运行时开销。
  • 大数据可用性:虚拟滚动 + DataGrid 交互优化,提升大结果集可操作性。
  • 统一连接能力:支持 URI 生成/解析、SSH 隧道、代理、驱动按需安装。
  • 工程化能力完整:覆盖 SQL 编辑、对象管理、批量导出/备份、数据同步、执行日志、在线更新。

支持的数据源

内置:主程序开箱即用。
可选驱动代理:需在驱动管理中安装启用后可用。

类别 数据源 驱动模式 典型能力
关系型 MySQL 内置 库表浏览、SQL 查询、数据编辑、导出/备份
关系型 PostgreSQL 内置 库表浏览、SQL 查询、数据编辑、对象管理
关系型 Oracle 内置 连接查询、对象浏览、数据编辑
缓存 Redis 内置 Key 浏览、命令执行、编码/视图切换
关系型 MariaDB 可选驱动代理 连接查询、对象管理、数据编辑
关系型 Doris 可选驱动代理 连接查询、对象浏览、SQL 执行
列式分析 StarRocks 可选驱动代理 连接查询、对象浏览、SQL 执行
搜索 Sphinx 可选驱动代理 SphinxQL 查询与对象浏览
关系型 SQL Server 可选驱动代理 库表浏览、SQL 查询、对象管理
文件型 SQLite 可选驱动代理 本地文件库浏览、编辑、导出
文件型 DuckDB 可选驱动代理 大表查询、分页浏览、文件库管理
国产数据库 Dameng 可选驱动代理 连接查询、对象浏览、数据编辑
国产数据库 Kingbase 可选驱动代理 连接查询、对象浏览、数据编辑
国产数据库 HighGo 可选驱动代理 连接查询、对象浏览、数据编辑
国产数据库 Vastbase 可选驱动代理 连接查询、对象浏览、数据编辑
文档型 MongoDB 可选驱动代理 文档查询、集合浏览、连接管理
时序 TDengine 可选驱动代理 时序库表浏览、查询分析
列式分析 ClickHouse 可选驱动代理 分析查询、对象浏览、SQL 执行
联邦查询 Trino 可选驱动代理 跨多数据源联邦 SQL、catalog.schema 浏览、SQL 执行
搜索 Elasticsearch 可选驱动代理 索引浏览、Mapping 检查、JSON DSL / query_string 查询
扩展接入 Custom Driver/DSN 自定义 通过 Driver + DSN 接入更多数据源

📸 项目截图

<img width="25%" alt="image" src="https://github.com/user-attachments/assets/0eefe07f-2836-44fa-9ddf-a0d2124b90e2" />
<img width="25%" alt="image" src="https://github.com/user-attachments/assets/6765e539-83ea-4cd6-9c9e-f42790fa05b5" />
<img width="25%" alt="image" src="https://github.com/user-attachments/assets/60e3d187-171a-4248-94e0-c6b08736e235" />



<img width="25%" alt="image" src="https://github.com/user-attachments/assets/7a478602-0f08-4b30-8f6a-879f4a60ae32" />
<img width="14%" alt="image" src="https://github.com/user-attachments/assets/6442ca7d-ce9e-46d9-aecd-405ba88f5a5e" />
<img width="25%" alt="image" src="https://github.com/user-attachments/assets/bc17895e-02a4-4cc5-b471-c3803cf25a2b" />

核心特性

AI 智能助手 (New)

  • 多模型服务商支持:内置跨平台接入 OpenAI, Google Gemini, Anthropic Claude,同时支持任意自定义兼容 OpenAI 格式的 API。
  • 关联表结构上下文:原生支持将当前数据库表结构直接提取作为上下文发送给 AI,让 SQL 生成、分析变得更精准。
  • 快捷指令:内置多种快捷对话指(如一键生成 SQL、解释执行逻辑、分析性能优化、表字段代码评审等)。

性能与交互

  • 大数据场景下保持流畅交互(含 DataGrid 列宽拖拽、批量编辑流程优化)。
  • 虚拟滚动渲染,降低大结果集卡顿风险。

数据管理(DataGrid)

  • 单元格所见即所得编辑。
  • 批量新增/修改/删除,支持事务提交与回滚。
  • 大字段弹窗编辑。
  • 右键上下文操作(NULL、复制、导出等)。
  • 根据查询上下文智能切换读写模式。
  • 支持 CSV / XLSX / JSON / Markdown 导出。

SQL 编辑器

  • 基于 Monaco Editor。
  • 上下文补全(数据库/表/字段)。
  • 多标签查询工作流。

连接与驱动

  • URI 生成与解析。
  • SSH 隧道、代理支持。
  • 连接配置 JSON 导入/导出。
  • 可选驱动安装与启用管理。

Redis 工具

  • 自动/原始文本/UTF-8/十六进制等视图模式。
  • 内置命令执行面板。

可观测性与更新

  • SQL 执行日志(含耗时)。
  • 启动/定时/手动更新检查。

UI 体验

  • Ant Design 5 体系。
  • 深色/浅色主题切换。
  • 灵活布局与侧边栏行为。

技术栈

  • 后端: Go 1.24 + Wails v2
  • 前端: React 18 + TypeScript + Vite
  • UI 框架: Ant Design 5
  • 状态管理: Zustand
  • 编辑器: Monaco Editor

安装与运行

前置要求

  • 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

# 本地快速启动:未修改 Go 导出方法签名时使用
node tools/wails-fast-dev.mjs

# 修改 Go 导出方法签名后刷新 Wails JS 绑定
node tools/wails-fast-dev.mjs --refresh-bindings

# Windows PowerShell 低内存视觉模式:关闭透明 WebView 和 Acrylic 背景
$env:GONAVI_LOW_MEMORY_MODE="1"; node tools/wails-fast-dev.mjs

编译构建

# 构建当前平台
wails build

# 清理后构建(发布前推荐)
wails build -clean

构建产物位于 build/bin

跨平台发布(GitHub Actions)

仓库内置发布流水线,推送 v* Tag 可自动构建并发布 Release。 Release 更新说明会基于已合并 Pull Request 自动生成,并按 .github/release.yaml 分类。

支持目标: - macOS (AMD64 / ARM64) - Windows (AMD64) - Linux (AMD64,含 WebKitGTK 4.0 / 4.1 变体)


常见问题

macOS 提示“应用已损坏,无法打开”

在未进行 Apple Notarization 时,Gatekeeper 可能拦截应用。

sudo xattr -rd com.apple.quarantine /Applications/GoNavi.app

Linux 缺少 libwebkit2gtk / libjavascriptcoregtk

# Debian 13 / Ubuntu 24.04+
sudo apt-get update
sudo apt-get install -y libgtk-3-0 libwebkit2gtk-4.1-0 libjavascriptcoregtk-4.1-0

# Ubuntu 22.04 / Debian 12
sudo apt-get update
sudo apt-get install -y libgtk-3-0 libwebkit2gtk-4.0-37 libjavascriptcoregtk-4.0-18

Linux 中文显示为方框

Ubuntu 24.04 LTS 的最小化桌面或服务器环境可能没有安装中文 CJK 字体,GoNavi 打开后中文会显示为方框。安装 Noto / 文泉驿字体后重启 GoNavi:

sudo apt-get update
sudo apt-get install -y fonts-noto-cjk fonts-wqy-microhei
fc-cache -fv

贡献指南

欢迎提交 Issue 与 Pull Request。

完整流程、分支模型与维护者同步规则请查看:

外部贡献者应从 dev 拉出分支,并统一向 dev 发起 Pull Request。

Star History (Star 增长趋势)

Star History Chart

友情链接

开源协议

本项目采用 Apache-2.0 协议

Extension points exported contracts — how you extend this code

Database (Interface)
Database 定义了统一的数据源访问接口。 所有数据库驱动(MySQL、PostgreSQL、Oracle 等)均需实现此接口。 方法调用方可通过 NewDatabase 工厂函数获取对应驱动的实例。 [49 implementers]
internal/db/database.go
DiagnosticTransport (Interface)
(no doc) [6 implementers]
internal/jvm/diagnostic_transport.go
SecretStore (Interface)
(no doc) [7 implementers]
internal/secretstore/store.go
MigrationPlanner (Interface)
(no doc) [24 implementers]
internal/sync/migration_kernel_types.go
SessionStreamProvider (Interface)
SessionStreamProvider 表示支持按会话复用上游状态的流式 Provider。 state 为 Provider 自己维护的持久化状态;返回值为更新后的状态快照。 [3 implementers]
internal/ai/provider/provider.go
Backend (Interface)
Backend 抽象 GoNavi 后端能力,便于复用真实 App 和单元测试替身。 [2 implementers]
internal/mcpserver/backend.go
RedisClient (Interface)
RedisClient defines the interface for Redis operations [2 implementers]
internal/redis/redis.go
Position (Interface)
(no doc)
frontend/wailsjs/runtime/runtime.d.ts

Core symbols most depended-on inside this repo

t
called by 3467
frontend/src/i18n/index.ts
resolve
called by 496
frontend/src/node-test-shims.d.ts
appText
called by 389
internal/app/app.go
Error
called by 359
internal/app/app.go
stringify
called by 293
tools/jmx-helper/src/com/gonavi/jmxhelper/MiniJson.java
parse
called by 286
tools/jmx-helper/src/com/gonavi/jmxhelper/MiniJson.java
Close
called by 286
internal/db/database.go
Get
called by 285
internal/secretstore/store.go

Shape

Function 9,020
Method 2,862
Struct 699
Interface 489
Class 144
TypeAlias 27
FuncType 17

Languages

Go61%
TypeScript37%
Java2%
Python1%

Modules by API surface

internal/app/methods_file.go245 symbols
frontend/wailsjs/go/models.ts217 symbols
internal/app/methods_driver.go188 symbols
frontend/wailsjs/go/app/App.js180 symbols
frontend/src/components/QueryEditor.tsx122 symbols
internal/db/database.go119 symbols
frontend/src/components/queryEditor/QueryEditorHelpers.ts107 symbols
internal/ai/service/service.go104 symbols
frontend/src/store.ts101 symbols
internal/app/methods_db.go95 symbols
internal/app/methods_driver_version_test.go89 symbols
internal/app/methods_db_multi_test.go86 symbols

Datastores touched

appDatabase · 1 repos
(mongodb)Database · 1 repos
adminDatabase · 1 repos
(mysql)Database · 1 repos
appDatabase · 1 repos
mkefu_location_dev_localDatabase · 1 repos
db_nameDatabase · 1 repos
dbnameDatabase · 1 repos

For agents

$ claude mcp add GoNavi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page