MyGo

3周前发布 51 00

MyGo 是一套使用 Go 语言开发桌面应用的框架,最大特色是支持两种窗口界面模式,同一个程序里可以同时混用两类窗口,并且全程纯Go实现、不依赖cgo。

所在地:
egoist
收录时间:
2026-10-05
其他站点:
MyGo 是一套使用 Go 语言开发桌面应用的框架,最大特色是支持两种窗口界面模式,同一个程序里可以同时混用两类窗口,并且全程纯Go实现、不依赖cgo。

MyGo

两种窗口界面

  1. WebView网页窗口

直接复用操作系统自带Webview内核,不打包独立浏览器:macOS WKWebView、Linux WebKitGTK、Windows WebView2。

前端可以自由选用任意Web技术栈写HTML/CSS/JS。框架会自动生成TypeScript客户端,前端能够直接调用后端Go代码,自动带上Go结构体类型、方法文档,实现类型安全的IPC通信。

  1. GPU渲染原生UI窗口

依靠MyGo内置ui包,只用Go代码完成界面绘制,不使用HTML、JS、WebView。界面由GPU直接渲染,窗口启动速度快、内存占用极低。

原生UI工具包内置 flexbox / grid 布局、基础组件、支持输入法的文本框、虚拟滚动列表、SVG图标、动画、屏幕阅读器无障碍支持,视图还可以脱离窗口做单元测试。

核心特性

  • 纯Go,无cgo:跨平台交叉编译,一台机器就能编译出 Windows / macOS / Linux 各平台程序。
  • 类型化IPC通信:Go服务绑定、Channel流式数据、类型安全事件;TS客户端自动从Go代码生成。
  • 统一桌面API:两种窗口共享同一套能力,窗口管理、菜单栏、系统托盘、弹窗对话框、系统通知、全局快捷键、深链接、文件关联。
  • 轻量打包:最终产物是仅数MB的单一Go二进制程序,主打低CPU、低内存开销。
  • 发布交付全套工具:应用包、镜像、Windows安装包、Debian软件包、Linux部署脚本;支持代码签名、公证,还有类似Sparkle的签名增量自动更新界面。

简单总结

MyGo给Go开发者两套选择:想用成熟Web前端就走系统WebView;追求极速启动、低内存就用GPU原生UI,两种窗口还能放在同一个应用里。无cgo的特性大幅简化跨平台编译,并且自带从开发、打包到自动更新的完整桌面交付链路。

相关导航