1
0
Fork 0
mirror of https://github.com/Syngnat/GoNavi.git synced 2026-04-25 02:35:55 +03:00
No description
Find a file
Syngnat b9ac1ab9b7
合并拉取请求 #396
release/0.6.9
2026-04-17 21:17:38 +08:00
.github 🐛 fix(security): 修复 macOS 无法打开应用及三平台依赖系统钥匙串的问题 2026-04-13 12:40:25 +08:00
build 🔧 fix(appearance): 修复100%%不透明仍透明并隔离Dev图标缓存 2026-02-06 14:33:15 +08:00
cmd feat(security): 完成密文升级与连接恢复包导入导出 2026-04-10 21:29:45 +08:00
docs feat(sync): 新增 SQL 结果集数据同步能力 2026-04-17 16:31:55 +08:00
frontend feat(sql-files): 支持外部 SQL 目录树与双击打开 2026-04-17 21:02:48 +08:00
internal feat(sql-files): 支持外部 SQL 目录树与双击打开 2026-04-17 21:02:48 +08:00
third_party/highgo-pq feat(highgo-sm3): 增加瀚高SM3专用驱动并解耦PostgreSQL连接链路 2026-02-10 17:42:28 +08:00
.gitignore feat(security): 完成密文升级与连接恢复包导入导出 2026-04-10 21:29:45 +08:00
assets_dev.go 🐛 fix(app): 修复供应商预设识别并兼容Wails开发模式资源加载 2026-03-28 17:40:27 +08:00
assets_prod.go 🐛 fix(app): 修复供应商预设识别并兼容Wails开发模式资源加载 2026-03-28 17:40:27 +08:00
build-driver-agents.sh 🔧 fix(driver/kingbase,mongodb): 修复外置驱动事务引用与连接测试链路问题 2026-03-12 16:45:46 +08:00
build-release.sh 🐛 fix(security): 修复 macOS 无法打开应用及三平台依赖系统钥匙串的问题 2026-04-13 12:40:25 +08:00
CONTRIBUTING.md 📝 docs(contributing): 修正 dev 分支贡献流程说明 2026-04-12 12:34:50 +08:00
CONTRIBUTING.zh-CN.md 📝 docs(contributing): 修正 dev 分支贡献流程说明 2026-04-12 12:34:50 +08:00
go.mod 🐛 fix(driver): 修复可选驱动在线安装回归问题 2026-04-16 15:05:16 +08:00
go.sum 🐛 fix(driver): 修复可选驱动在线安装回归问题 2026-04-16 15:05:16 +08:00
LICENSE Initial commit 2026-01-31 17:30:48 +08:00
logo.svg feat(frontend/backend): 批量操作与表格编辑增强并完善事务支持 2026-02-05 14:30:05 +08:00
main.go 🐛 fix(app): 修复供应商预设识别并兼容Wails开发模式资源加载 2026-03-28 17:40:27 +08:00
main_windows_webview_userdata.go 🐛 fix(windows-upgrade): 修复Windows升级后连接列表丢失问题 2026-02-27 13:56:35 +08:00
main_windows_webview_userdata_stub.go 🐛 fix(windows-upgrade): 修复Windows升级后连接列表丢失问题 2026-02-27 13:56:35 +08:00
optional-driver-agent feat(driver-proxy): 新增ClickHouse数据源并提供全局代理独立入口 2026-02-27 16:39:13 +08:00
README.md 📝 docs(contributing): 修正 dev 分支贡献流程说明 2026-04-12 12:34:50 +08:00
README.zh-CN.md 📝 docs(contributing): 修正 dev 分支贡献流程说明 2026-04-12 12:34:50 +08:00
wails.json feat(frontend): 升级 DataGrid 组件并引入高性能拖拽交互 2026-02-02 11:32:49 +08:00

GoNavi - A Modern Lightweight Database Client

Go Version Wails Version React Version License Build Status Stars Downloads

Language: English | 简体中文

GoNavi is a modern, high-performance, cross-platform database client built with Wails (Go) and React. It delivers native-like responsiveness with low resource usage.

Compared with many Electron-based clients, GoNavi is typically smaller in binary size (around 10MB class), starts faster, and uses less memory.


Project Overview

GoNavi is designed for developers and DBAs who need a unified desktop experience across multiple databases.

  • Native-performance architecture: Wails (Go + WebView) with lightweight runtime overhead.
  • Large dataset usability: virtualized rendering and optimized DataGrid workflows for high-volume tables.
  • Unified connectivity: URI build/parse, SSH tunnel, proxy support, and on-demand driver activation.
  • Production-oriented workflow: SQL editor, object management, batch export/backup, sync tools, execution logs, and update checks.

Supported Data Sources

Built-in: available out of the box.
Optional driver agent: install/enable via Driver Manager first.

Category Data Source Driver Mode Typical Capabilities
Relational MySQL Built-in Schema browsing, SQL query, data editing, export/backup
Relational PostgreSQL Built-in Schema browsing, SQL query, data editing, object management
Relational Oracle Built-in Query execution, object browsing, data editing
Cache Redis Built-in Key browsing, command execution, encoding/view switch
Relational MariaDB Optional driver agent Querying, object management, data editing
Relational Doris Optional driver agent Querying, object browsing, SQL execution
Search Sphinx Optional driver agent SphinxQL querying and object browsing
Relational SQL Server Optional driver agent Schema browsing, SQL query, object management
File-based SQLite Optional driver agent Local DB browsing, editing, export
File-based DuckDB Optional driver agent Large-table query, pagination, file-DB workflow
Domestic DB Dameng Optional driver agent Querying, object browsing, data editing
Domestic DB Kingbase Optional driver agent Querying, object browsing, data editing
Domestic DB HighGo Optional driver agent Querying, object browsing, data editing
Domestic DB Vastbase Optional driver agent Querying, object browsing, data editing
Document MongoDB Optional driver agent Document query, collection browsing, connection management
Time-series TDengine Optional driver agent Time-series schema browsing and querying
Columnar Analytics ClickHouse Optional driver agent Analytical query, object browsing, SQL execution
Extensibility Custom Driver/DSN Custom Extend to more data sources via Driver + DSN

📸 Screenshots

image image image
image image image

Key Features

AI Assistant (New)

  • Multi-provider Support: OpenAI, Google Gemini, Anthropic Claude, and custom API support.
  • Context-Aware Chat: Attach table schemas to the AI context for accurate SQL generation and assistance.
  • Slash Commands: Quick commands for generating SQL, explaining queries, optimizing performance, and reviewing schema designs.

Performance

  • Smooth interaction under load: optimized table interaction (including column resize workflow on large datasets).
  • Virtualized rendering: keeps large result sets responsive.

Data Management (DataGrid)

  • In-place cell editing.
  • Batch insert/update/delete with transaction-oriented submit/rollback.
  • Large-field popup editor.
  • Context actions (set NULL, copy/export, etc.).
  • Smart read/write mode switching based on query context.
  • Export formats: CSV, Excel (XLSX), JSON, Markdown.

SQL Editor

  • Monaco Editor core.
  • Context-aware completion for databases/tables/columns.
  • Multi-tab query workflow.

Batch Export / Backup

  • Database-level and table-level batch export/backup.
  • Scope-aware operation flow to reduce mistakes.

Connectivity

  • URI generation/parsing.
  • SSH tunnel support.
  • Proxy support.
  • Config import/export (JSON).
  • Optional driver management and activation.

Redis Tools

  • Multi-view value rendering (auto/raw text/UTF-8/hex).
  • Built-in command execution panel.

Observability and Update

  • SQL execution logs with timing information.
  • Startup/scheduled/manual update checks.

UI/UX

  • Ant Design 5 based interface.
  • Light/Dark themes.
  • Flexible sidebar and layout behavior.

Tech Stack

  • Backend: Go 1.24 + Wails v2
  • Frontend: React 18 + TypeScript + Vite
  • UI: Ant Design 5
  • State Management: Zustand
  • Editor: Monaco Editor

Installation and Run

Prerequisites

  • Go 1.21+
  • Node.js 18+
  • Wails CLI: go install github.com/wailsapp/wails/v2/cmd/wails@latest

Development Mode

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

# Start development with hot reload
wails dev

Build

# Build for current platform
wails build

# Clean build (recommended before release)
wails build -clean

Artifacts are generated in build/bin.

Cross-Platform Release (GitHub Actions)

The repository includes a release workflow. Push a v* tag to trigger automated build and release. Release notes are generated automatically from merged pull requests and categorized by .github/release.yaml.

Target artifacts include:

  • macOS (AMD64 / ARM64)
  • Windows (AMD64)
  • Linux (AMD64, WebKitGTK 4.0 and 4.1 variants)

Troubleshooting

macOS: "App is damaged and cant be opened"

Without Apple notarization, Gatekeeper may block startup.

  1. Move GoNavi.app to Applications.
  2. Open Terminal.
  3. Run:
sudo xattr -rd com.apple.quarantine /Applications/GoNavi.app

Or right-click the app in Finder and choose Open with Control key flow.

Linux: missing libwebkit2gtk / libjavascriptcoregtk

GoNavi depends on WebKitGTK runtime libraries.

# 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

If you use Linux artifacts with the -WebKit41 suffix, prefer Debian 13 / Ubuntu 24.04+.


Contributing

Issues and pull requests are welcome.

For the full workflow, branch model, and maintainer sync rules, see:

External contributors should branch from dev and open pull requests against dev.

Star History

Star History Chart

License

Licensed under Apache-2.0.