一个用 Go 构建跨平台桌面应用的框架,前端可使用 React、Vue、Svelte 等 Web 技术。
egoist/mygo
用 Go 开发桌面应用的框架,可选系统 WebView 网页界面或 GPU 绘制的原生 UI。
- Star
- 5,168
- Fork
- 315
- 未关闭 Issue
- 100
- 最近提交
- 3小时前
这是什么?
MyGo 让开发者用 Go 编写桌面应用,每个窗口可以选择两种界面之一:一种是调用操作系统自带 WebView(macOS 为 WKWebView,Linux 为 WebKitGTK,Windows 为 WebView2)显示网页;另一种是用 Go 编写的原生 UI 工具包,由 MyGo 在 GPU 上直接绘制,不依赖 HTML、JavaScript 或 WebView。同一个应用或窗口也可以混合使用两种方式。
网页前端通过从 Go 代码生成的 TypeScript 客户端调用 Go 服务,支持带类型的 IPC、通过通道传输数据流和类型化事件。项目为纯 Go 实现、不依赖 cgo,可在任意机器上交叉编译各平台版本。桌面 API 涵盖窗口、菜单、托盘、对话框、通知、全局快捷键、深度链接、文件关联和系统强调色等。
项目还提供打包与分发工具,包括应用包、磁盘镜像、Windows 安装程序、Debian 包、代码签名、公证,以及带增量更新的签名自动更新。
核心功能
- 01网页窗口通过生成的 TypeScript 客户端调用 Go 代码。
- 02纯 Go 编写的原生 UI 工具包,支持 flexbox 与 grid 布局、控件和虚拟化列表。
- 03纯 Go 实现、不依赖 cgo,可从任意机器交叉编译。
- 04提供菜单、托盘、对话框、通知、全局快捷键和深度链接等桌面 API。
- 05支持 macOS、Windows 和 Linux 的应用打包与签名自动更新。
适用场景
- 团队希望用 Go 同时编写桌面应用的后端逻辑和界面。
- 开发启动快、占用内存少的原生 UI 轻量应用。
- 发布带代码签名和自动更新的跨平台桌面应用。
- 在桌面应用中使用系统 WebView 加载由 Go 服务支撑的网页前端。
快速上手
- 1
安装 Go 1.27.3+ 和 Bun
- 2
创建带 Web 前端的应用
bunx mygo-cli init my-app - 3
进入项目文件夹
cd my-app - 4
启动开发服务器
bun run dev
使用前须知
- 快速开始需要 Go 1.27.3 或更高版本以及 Bun。
入选 Repolode 开源周刊
- 第 3 期 · 本周:从 SSD 流式加载专家跑大 MoE,以及 Rust 毫秒级重编译
用 Go 写桌面应用的框架,可以选系统 webview 加网页前端,也可以用 GPU 绘制的原生 UI。纯 Go 不依赖 cgo,在任何机器上都能交叉编译。
收录于专题
标签
常见问题
- mygo 是什么?
- 用 Go 开发桌面应用的框架,可选系统 WebView 网页界面或 GPU 绘制的原生 UI。 MyGo 让开发者用 Go 编写桌面应用,每个窗口可以选择两种界面之一:一种是调用操作系统自带 WebView(macOS 为 WKWebView,Linux 为 WebKitGTK,Windows 为 WebView2)显示网页;另一种是用 Go 编写的原生 UI 工具包,由 MyGo 在 GPU 上直接绘制,不依赖 HTML、JavaScript 或 WebView。同一个应用或窗口也可以混合使用两种方式。
- mygo 可以免费使用吗?用的什么许可证?
- mygo 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- mygo 还在维护吗?
- 活跃维护中。mygo 最近一次提交是在 2026年11月7日。
- mygo 适合用来做什么?
- 团队希望用 Go 同时编写桌面应用的后端逻辑和界面。 开发启动快、占用内存少的原生 UI 轻量应用。 发布带代码签名和自动更新的跨平台桌面应用。 在桌面应用中使用系统 WebView 加载由 Go 服务支撑的网页前端。
- mygo 怎么安装和运行?
- 安装 Go 1.27.3+ 和 Bun 创建带 Web 前端的应用: bunx mygo-cli init my-app 进入项目文件夹: cd my-app 启动开发服务器: bun run dev
- 在哪里获取 mygo?
- 源代码和安装说明在 GitHub 上:https://github.com/egoist/mygo
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个 Python 原生 GUI 工具包,使用各操作系统自带的原生控件构建应用界面。
用 Zig 构建桌面应用的工具包,可用 GPU 绘制原生界面,也可嵌入系统 webview 网页。
一个轻量的 C/C++ 跨平台 webview 库,用原生 WebView 在桌面应用中渲染 HTML 界面。
基于 Rust 的原生跨平台 UI 引擎,可用 Rust 或 TSX 编写应用,并使用各平台原生控件渲染。
用 Go 编写应用逻辑、由各平台原生控件渲染的跨平台 UI 引擎。