Repolode
egoist

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. 1

    安装 Go 1.27.3+ 和 Bun

  2. 2

    创建带 Web 前端的应用

    bunx mygo-cli init my-app
  3. 3

    进入项目文件夹

    cd my-app
  4. 4

    启动开发服务器

    bun run dev

使用前须知

  • 快速开始需要 Go 1.27.3 或更高版本以及 Bun。

入选 Repolode 开源周刊

收录于专题

标签

常见问题

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 数据每日更新。

相关项目