MyGo:只用 Go 写桌面应用,不绑 WebView 的原生界面只要 7MB,Web 前端也能套

MyGo 是 egoist 开源的 Go 桌面应用框架,目标是只用 Go 写出小而快的桌面应用:既可以写纯原生界面,也可以套一个 Web 前端,两种窗口共用同一套窗口、菜单、托盘与桌面 API。

最吸引人的是原生模式:界面就是 Go 函数对应用状态的描述,由框架自己在 GPU 上绘制(Metal / Direct3D / OpenGL),不走 HTML、不用 WebView、不绑浏览器内核。官方给出的数据是:原生应用单个二进制约 7MB,内存约 44MB,空闲 CPU 0%。它也不用 cgo,一台机器就能交叉编译 macOS、Windows、Linux 三端。

如果已有 Web 代码,也可以走 Web 前端模式:用系统自带的 WKWebView / WebKitGTK / WebView2 承载,前端通过框架生成的 TypeScript 客户端以类型安全的方式调用 Go 服务、订阅事件。两种模式都自带打包能力:macOS 的 .app 与磁盘映像、Windows 安装包、Linux 的 .deb 与安装脚本,以及代码签名、公证与带差量更新的自动更新。

适合想用 Go 做小工具、启动器、设置面板这类桌面应用的开发者,尤其在意体积和启动速度时值得一试;但要注意它要求 Go 1.27+,Web 前端模式还需 Bun。项目地址:egoist/mygo,官网与文档见 mygo.egoist.dev。

来源:GitHub @egoist,原文:https://github.com/egoist/mygo

请登录后发表评论

    没有回复内容