简介
Wails 是一个项目,使您能够使用 Go 和 Web 技术编写桌面应用程序。
可以将其视为 Go 的轻量级快速 Electron 替代方案。您可以轻松地使用 Go 的灵活性和强大功能以及丰富、现代的前端来构建应用程序。
特点
- 原生菜单、对话框、主题和半透明
- 支持 Windows、macOS 和 Linux
- 内置 Svelte、React、Preact、Vue、Lit 和 Vanilla JS 模板
- 轻松从 JavaScript 调用 Go 方法
- 自动将 Go 结构体生成到 TypeScript 模型
- Windows 上无需 CGO 或外部 DLL
- 使用 Vite 的强大功能进行实时开发模式
- 强大的 CLI 可轻松创建、构建和打包应用程序
- 一个丰富的 运行时库
- 使用 Wails 构建的应用程序符合 Apple 和 Microsoft Store 规范
这是 varly - 一个使用 Wails 编写的适用于 MacOS 和 Windows 的桌面应用程序。它不仅看起来很棒,而且还使用原生菜单和半透明效果 - 这是您对现代原生应用程序的期望。
快速入门模板
Wails 附带了许多预配置模板,使您可以快速启动和运行应用程序。有以下框架的模板:Svelte、React、Vue、Preact、Lit 和 Vanilla。每个模板都有 JavaScript 和 TypeScript 版本。
原生元素
Wails 使用一个专门构建的库来处理窗口、菜单、对话框等原生元素,因此您可以构建外观良好、功能丰富的桌面应用程序。
它不嵌入浏览器,因此它提供了一个小型运行时。相反,它重用了平台的原生渲染引擎。在 Windows 上,这是基于 Chromium 构建的新的 Microsoft Webview2 库。
Go 和 JavaScript 的互操作性
Wails 会自动将您的 Go 方法提供给 JavaScript,因此您可以从前端按名称调用它们!它甚至会为您的 Go 方法使用的结构体生成 TypeScript 模型,因此您可以在 Go 和 JavaScript 之间传递相同的数据结构。
运行时库
Wails 为 Go 和 JavaScript 提供了一个运行时库,它处理现代应用程序所需的许多功能,如事件处理、日志记录、对话框等。
实时开发体验
自动重建
在“dev”模式下运行应用程序时,Wails 会将应用程序构建为原生桌面应用程序,但会从磁盘读取您的资产。它会检测您 Go 代码的任何更改,并自动重建并重新启动您的应用程序。
自动重新加载
当检测到应用程序资产的更改时,正在运行的应用程序将“重新加载”,几乎立即反映您的更改。
在浏览器中开发您的应用程序
如果您更喜欢在浏览器中调试和开发,那么 Wails 可以满足您的需求。正在运行的应用程序还有一个 Web 服务器,它将在连接到它的任何浏览器中运行您的应用程序。即使您的资产在磁盘上发生更改,它也会刷新。
可用于生产的原生二进制文件
准备好进行应用程序的最终构建时,CLI 会将其编译为单个可执行文件,并将所有资产捆绑到其中。在 Windows 和 MacOS 上,可以创建用于分发的原生软件包。用于打包的资产(图标、info.plist、清单文件等)是您项目的一部分,可以自定义,让您完全控制应用程序的构建方式。
工具
Wails CLI 提供了一种无忧无虑的方式来生成、构建和捆绑您的应用程序。它会完成创建图标、使用最佳设置编译应用程序以及提供可分发的、可用于生产的二进制文件的繁重工作。从许多入门模板中选择,快速启动和运行!