Golang 程序的 Electron UI?

Electron UI for Golang Program?

我想在 Electron 中为用 Go 编写的桌面应用程序制作一个 GUI(目前它是一个命令行工具)。

Electron 和 Go 进程之间的通信约定是什么?

简单地使用 Go 二进制文件作为 API 可行吗?某种网络套接字通信?

用 electron 编写的应用程序与其后端的交互与 Web 浏览器完全一样,因此您有相同的选项(Web Api、Web Sockets、Ajax 等)

您可以通过 child_process.spawn 从 Electron 应用程序执行命令行应用程序,并通过 stdin/stdout.

与其通信

Murlock 是 Golang 的 Electron 包装器,使 Mac 的此类应用程序变得容易。他们正在 Windows 上工作,并为其他平台寻找贡献。

您可以使用 go-astilectron 它允许您使用 GO 和 HTML/JS/CSS(由 Electron 提供支持)构建跨平台 GUI 应用程序(披露:我是作者)

与 Murlock 类似,请允许我推荐 Webview 库。它是 Webkit 和 MSHTML 的精简包装器,可在 Windows 7+、MacOS、Linux 和 OpenBSD 上运行。

它比 Electron 更小也更容易。此外,生成的应用程序更小,占用内存更少。

您可以查看 https://github.com/zserge/webview/tree/master/examples/todo-go 编译成小型独立二进制文件的 Todo 应用程序示例。

结帐 muon 他们的自述文件对其进行了最好的描述:

Muon is a lightweight alternative to Electron written in Golang in about ~300 LoC, using Ultralight instead of Chromium. Ultralight is a cross-platform WebKit rewrite using the GPU to target embedded desktop applications that resulted in a fast, lightweight, and low-memory HTML UI solution that blends the power of Chromium with the small footprint of Native UI.

我自己没有用过,但看起来很有前途!

我一直在研究如何使用 Go 运行 ElectronJS 后端来构建原生桌面应用程序。

您可以使用 extraResourcesprocess.resourcesPath 变量来进入 Resources 文件夹。并执行你的二进制文件。虽然不是很推荐。

要使用的其他选项:https://github.com/wailsapp/wails

它非常轻巧,可以将您的应用程序导出到 MacOS 和 Windows。