Announcement

👇Official Account👇

图片

Welcome to join the group & private message

Article first/tail QR code

Skip to content

Wails 生态巡礼:两款让我惊艳的桌面应用(GoNavi & TinyRDM)

作为 Wails 的忠实粉丝,今天想和大家分享两款让我眼前一亮的开源项目。


关注 Wails 框架已经有一段时间了,从一开始的"又一个 Electron 替代品"到现在的"桌面开发首选方案",我的心态经历了一个完整的转变过程。

最近,我在 GitHub 上发现了两款基于 Wails 构建的优秀工具:

  • GoNavi —— 现代化的多数据库管理工具
  • TinyRDM —— 轻量级 Redis 桌面管理器(12k+ stars)

作为一个 Wails 的忠实支持者,看到这样的项目,我真的很兴奋。今天就想以使用者和分享者的身份,和大家聊聊这两个项目,以及我为什么看好 Wails 生态。

⚠️ 声明:我不是这两个项目的开发者,只是一个被它们圈粉的 Wails 爱好者。


我为什么成为 Wails 的忠实支持者

在遇到 Wails 之前,我和很多人一样,认为桌面应用 = Electron。直到我开始关注性能用户体验,才发现 Wails 的魅力所在。

Wails 打动我的几个点

痛点Electron 方案Wails 方案
安装包体积动辄 150MB+通常 20-30MB
内存占用每个窗口一个 Chromium共享系统 WebView
启动速度2-3 秒1 秒以内
后端能力Node.jsGo(原生性能 + 并发)

核心差异:Wails 使用操作系统原生的 WebView,而不是捆绑整个 Chromium。这就是体积和内存优势的根本来源。

技术栈的优雅结合

┌─────────────────────────────────────┐
│         你的桌面应用                │
├─────────────────────────────────────┤
│  前端:React/Vue + TypeScript       │
│  (你熟悉的 Web 技术)               │
├─────────────────────────────────────┤
│  后端:Go                           │
│  (高性能、强类型、并发友好)        │
├─────────────────────────────────────┤
│  运行时:系统原生 WebView            │
│  (macOS: WebKit, Windows: Edge,   │
│   Linux: WebKitGTK)                │
└─────────────────────────────────────┘

这种设计让我可以用最熟悉的 Web 技术写 UI,同时享受 Go 带来的后端性能优势。


主角登场:两款 Wails 应用对比

在深入介绍之前,先来个快速对比:

维度GoNaviTinyRDM
定位多数据库管理工具Redis 专用管理器
前端框架React 18 + Ant Design 5Vue 3 + Naive UI
GitHub Stars新兴项目12.6k+
支持数据库15+ 种(MySQL/PG/Redis 等)Redis(全功能支持)
特色功能多数据库统一界面、SQL 编辑器Docker 部署、自定义编解码器
开源协议Apache 2.0GPL-3.0
共同点🎯 Wails v2 + Go + Monaco Editor + 跨平台

这两个项目代表了 Wails 生态的两种典型应用:

  • GoNavi:通用型数据库工具,追求广度统一体验
  • TinyRDM:垂直领域工具,追求深度专业性

GoNavi:多数据库管理的轻量之选

初印象

第一次在 GitHub 上看到 GoNavi 时,我被几个数据吸引了:

  • 📦 不到 2 个月发布 29 个版本 —— 开发节奏非常快
  • 🌟 Apache 2.0 开源协议 —— 对社区友好
  • 🚀 专注轻量高效 —— 明确的产品定位

GoNavi 是什么?

用一句话概括:GoNavi 是一个现代化的跨平台数据库管理工具,专为开发者和 DBA 设计。

它的目标很明确:在保持功能丰富的同时,提供比 Electron 应用更轻量的体验。

技术栈

yaml
后端:
  - Go 1.23+
  - Wails v2

前端:
  - React 18+ + TypeScript
  - Vite 5+
  - Ant Design 5
  - Zustand (状态管理)
  - Monaco Editor (SQL 编辑器)

核心功能(用户视角)

1. 多数据库支持

这是我最看重的特性之一。GoNavi 支持 15+ 种数据源

内置驱动(开箱即用)

  • MySQL
  • PostgreSQL
  • Oracle
  • Redis

可选驱动(按需启用)

  • MariaDB, Doris, SQL Server, SQLite, DuckDB
  • 达梦、人大金仓、高斯、Vastbase(国产数据库支持好评!)
  • MongoDB, TDengine, ClickHouse, Sphinx

💡 设计亮点:常用驱动内置,其他驱动按需下载。这样既保证了核心体验,又控制了初始体积。

2. 数据编辑体验

  • ✅ 所见即所得的单元格编辑
  • ✅ 批量操作 + 事务支持(可以回滚,安心)
  • ✅ 大字段弹窗编辑
  • ✅ 右键菜单快捷操作(设为 NULL、复制、导出)
  • ✅ 导出格式丰富:CSV / XLSX / JSON / Markdown

3. SQL 编辑器

基于 Monaco Editor(VS Code 同款):

  • 上下文感知的自动补全
  • 多标签页工作流
  • 语法高亮和错误提示

4. 连接管理

  • URI 生成与解析
  • SSH 隧道支持
  • 代理配置
  • 连接配置导出为 JSON(方便团队共享)

5. 性能优化

  • 虚拟滚动:处理大量数据不卡顿
  • DataGrid 优化:列宽调整、批量编辑都流畅
  • 低内存占用:长时间使用不会吃掉所有内存

TinyRDM:Redis 专用管理器的轻量标杆

第一印象

看到 TinyRDM12.6k+ stars 时,我就知道这个项目不简单。它是目前 GitHub 上最受欢迎的 Wails 应用之一。

TinyRDM 是什么?

TinyRDM(Tiny Redis Desktop Manager)是一个现代化、轻量级的跨平台 Redis 桌面管理器。

它的特别之处在于:

  • 提供 桌面应用(Mac/Windows/Linux)
  • 提供 Web 版本(Docker 一键部署)
  • 体积极小(~25MB vs Electron 的 150MB+)

技术栈

yaml
后端:
  - Go
  - Wails v2

前端:
  - Vue 3
  - Naive UI
  - IconPark (图标)
  - Monaco Editor

部署:
  - 桌面应用(原生可执行文件)
  - Docker 容器(Web 版本)

核心功能(用户视角)

1. 全面的 Redis 支持

  • Standalone Redis
  • Redis Cluster(集群模式)
  • Redis Sentinel(哨兵模式)
  • 所有 Redis 数据类型:Lists, Hashes, Strings, Sets, Sorted Sets, Streams

2. 连接管理

  • SSH Tunnel
  • SSL/TLS
  • HTTP Proxy / SOCKS5 Proxy
  • 连接配置导入/导出

3. 数据操作

  • 可视化 CRUD 操作
  • 多种数据查看格式(原始文本/UTF-8/十六进制)
  • SCAN 分段加载(轻松处理百万级 Key)
  • 自定义编解码器(支持特殊格式的数据)

4. 开发者工具

  • Monaco Editor 命令行模式
  • 实时命令监控
  • 慢查询日志
  • 操作历史记录
  • 导入/导出数据
  • 发布/订阅支持

5. 性能亮点

这是 TinyRDM 最让我印象深刻的地方:

对比项TinyRDMRedisInsight (Electron)Another Redis Desktop Manager
框架WailsElectronElectron
体积~25MB~150MB+~100MB+
内存占用中高
Web 版本✅ (Docker)

💡 关键优势:TinyRDM 是唯一提供官方 Docker Web 版本的 Redis GUI 客户端,这意味着你可以在服务器上部署,通过浏览器访问。

Docker 部署(这个功能太实用了)

bash
# 一行命令启动 Web 版 TinyRDM
docker run -d --name tinyrdm \
  -p 8086:8086 \
  -e ADMIN_USERNAME=admin \
  -e ADMIN_PASSWORD=tinyrdm \
  -v ./data:/app/tinyrdm \
  ghcr.io/tiny-craft/tiny-rdm:latest

# 访问 http://localhost:8086

这个功能对于团队共享 Redis 管理权限非常有用。


两款工具的对比与选择建议

功能对比

需求场景推荐工具理由
多数据库管理GoNavi支持 15+ 种数据库,统一界面
Redis 专用TinyRDM功能更深、社区更成熟
需要 Web 部署TinyRDM唯一支持 Docker 部署
SQL 编辑需求GoNaviMonaco Editor + 多标签页查询
国产数据库GoNavi支持达梦、人大金仓等
自定义编解码TinyRDM支持自定义值编码器

技术对比

维度GoNaviTinyRDM
前端偏好React 开发者Vue 开发者
UI 风格Ant Design 5(企业风)Naive UI(清新风)
社区规模新兴项目(快速增长)成熟项目(12k+ stars)
更新频率高(2 个月 29 版本)稳定(定期更新)
开源协议Apache 2.0(更宽松)GPL-3.0

我的选择建议

如果你需要:

  • 管理多种数据库(MySQL + PostgreSQL + Redis...)→ 选 GoNavi
  • 专注 Redis,需要深度功能 → 选 TinyRDM
  • 团队共享 Redis 管理权限 → 选 TinyRDM(Docker 部署)
  • 需要连接国产数据库 → 选 GoNavi

如果你像我一样: 两个都装上!反正都不占地方(各 20-30MB)😄


快速开始指南

环境准备(两者通用)

bash
# 需要安装
# - Go 1.21+
# - Node.js 18+ (TinyRDM 建议 20+)
# - Wails CLI

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

获取 GoNavi

bash
# 克隆项目
git clone https://github.com/Syngnat/GoNavi.git
cd GoNavi

# 开发模式
wails dev

# 构建
wails build

下载已编译版本GoNavi Releases

获取 TinyRDM

bash
# 克隆项目
git clone https://github.com/tiny-craft/tiny-rdm --depth=1
cd tiny-rdm

# 安装依赖
npm install --prefix ./frontend

# 开发模式
wails dev

下载已编译版本TinyRDM Releases

Docker 部署

bash
docker run -d --name tinyrdm \
  -p 8086:8086 \
  -e ADMIN_USERNAME=admin \
  -e ADMIN_PASSWORD=tinyrdm \
  ghcr.io/tiny-craft/tiny-rdm:latest

如果你想用 Wails 创建自己的项目

bash
# 官方模板初始化
wails init -n myapp -t react
# 或
wails init -n myapp -t vue

# 生成的项目结构
myapp/
├── main.go           # Go 入口文件
├── wails.json        # Wails 配置
├── frontend/         # 前端代码(React/Vue 等)
   ├── src/
   ├── package.json
   └── vite.config.ts
└── ...

我为什么看好 Wails 生态

通过 GoNavi 和 TinyRDM 这两个项目,我看到了 Wails 生态的几个特点:

1. 技术选型决定产品体验

两个项目都选择 Wails,原因很明确:

需求Wails 优势
快速启动原生 WebView,秒开
低内存占用不捆绑 Chromium
稳定后端连接Go 的并发和网络能力
灵活 UIWeb 技术栈

2. 开源生态正在成熟

  • GoNavi:2 个月 29 个版本,快速响应社区反馈
  • TinyRDM:12k+ stars,稳定的更新节奏
  • 跨平台构建自动化:GitHub Actions 自动构建多平台版本
  • 多样化的开源协议:Apache 2.0 / GPL-3.0,满足不同需求

3. 给开发者的启示

如果你正在考虑:

  • 开发一个内部工具给团队用
  • 做一个跨平台的桌面应用
  • 对现有 Electron 应用的性能不满意
  • 想用 Go + React/Vue 技术栈

那么 Wails + 这两个项目的实践值得参考。


适用场景建议(个人看法)

✅ 我推荐用 Wails 的场景

  • 需要跨平台的桌面工具
  • 对启动速度和内存占用敏感
  • 团队熟悉 Go + Web 前端
  • 需要后端高性能计算或并发处理
  • 希望分发体积小(<50MB)

❌ 可能需要谨慎评估的场景

  • 需要支持很老的操作系统(WebView 版本可能不够)
  • 团队只熟悉纯 Web 技术,不愿意学 Go
  • 需要高度定制 WebView 底层行为
  • 应用完全不需要后端逻辑

总结:一个 Wails 爱好者的真心推荐

作为 Wails 的忠实支持者,看到 GoNavi 和 TinyRDM 这样的项目涌现,我真的很开心。它们证明了:

  1. Wails 不是玩具 —— 可以构建功能完整的生产级应用
  2. 轻量不等于简陋 —— 两个项目功能都很丰富
  3. 生态多样性 —— 通用工具(GoNavi)+ 垂直工具(TinyRDM)
  4. 开源社区在成长 —— 快速迭代、跨平台支持、用户友好

我的建议:

你的需求推荐
想看看 Wails 能做什么两个项目都看看
需要数据库管理工具GoNavi(多数据库)或 TinyRDM(Redis 专用)
想学习 Wails 开发两个项目的源码都值得参考
对 Wails 感兴趣关注这两个项目的更新

相关链接

项目地址

下载与文档


写在最后:我不是这两个项目的开发者,只是一个被 Wails 圈粉、被它们惊艳的普通开发者。如果你也看好 Wails 生态,或者正在使用 GoNavi/TinyRDM,欢迎在评论区交流你的体验。

本文基于公开资料整理,如有不准确之处欢迎指正。

最后更新:2026 年 3 月 9 日

上次更新于: