English | 简体中文
向 Go 程序提供 Web 接口的传统方法是通过内置 Web 服务器。Wails 提供了一种不同的方法:它提供了将 Go 代码和 Web 前端都包装成单个二进制文件的能力。通过提供工具,可以很轻松的完成项目的创建、编译和打包。你所要做的就是发挥创意!
官方文档可以在 https://wails.app 中找到。
国内镜像站点 https://wails.top。
- 后端使用标准 Go
- 使用任意前端技术构建 UI 界面
- 快速为您的 Go 应用生成 Vue、Vuetify、React 前端代码
- 通过简单的绑定命令将 Go 方法暴露到前端
- 使用原生渲染引擎 - 无嵌入式浏览器
- 共享事件系统
- 原生文件系统对话框
- 强大的命令行工具
- 跨多个平台
这个项目由以下这些人或者公司支持:














Wails 使用 cgo 与原生渲染引擎结合,因此需要依赖一些平台的库以及 Go 的安装。基本要求是:
- Go 1.16
- npm
请确保已安装 xcode 命令行工具。这可以通过运行下面的命令来完成:
xcode-select --install
sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev
Debian: 8, 9, 10
Ubuntu: 16.04, 18.04, 19.04
也成功测试了: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, Kali, Neon, Pop!_OS
sudo pacman -S webkit2gtk gtk3
也成功测试了: Manjaro & ArcoLinux
sudo yum install webkitgtk3-devel gtk3-devel
CentOS 6, 7
sudo yum install webkit2gtk3-devel gtk3-devel
Fedora 29, 30
xbps-install gtk+3-devel webkit2gtk-devel
sudo emerge gtk+:3 webkit-gtk
Windows 需要 GCC 和相关工具。 建议从 http://tdm-gcc.tdragon.net/download 下载, 安装完成,您就可以开始了。
确保 Go modules 是开启的:GO111MODULE=on 并且 go/bin 在您的 PATH 变量中。
安装很简单,运行以下命令:
go get -u github.com/wailsapp/wails/cmd/wails
建议在此时阅读 https://wails.app 上面的文档.
-
它是 Electron 的替代品吗?
取决于您的要求。它旨在使 Go 程序员可以轻松制作轻量级桌面应用程序或在其现有应用程序中添加前端。尽管 Wails 当前不提供对诸如菜单之类的原生元素的钩子,但将来可能会改变。
-
这个项目针对的是谁?
希望将 HTML / JS / CSS 前端与其应用程序捆绑在一起的程序员,而不是借助创建服务并打开浏览器进行查看的方式。
-
名字怎么来的?
当我看到 WebView 时,我想"我真正想要的是围绕构建 WebView 应用程序工作,有点像 Rails 对于 Ruby"。因此,最初它是一个文字游戏(Webview on Rails)。碰巧也是我来自的 国家 的英文名字的同音。所以就是他了。
如果没有以下人员,此项目或许永远不会存在:
- Dustin Krysak - 他的支持和反馈是巨大的。
- Serge Zaitsev - Wails 窗口所使用的 Webview 的作者。
- Byron - 有时,Byron 单枪匹马地保持这个项目活着。没有他令人难以置信的投入,我们永远不会得到 v1 。
This project was mainly coded to the following albums:
- Manic Street Preachers - Resistance Is Futile
- Manic Street Preachers - This Is My Truth, Tell Me Yours
- The Midnight - Endless Summer
- Gary Newman - Savage (Songs from a Broken World)
- Steve Vai - Passion & Warfare
- Ben Howard - Every Kingdom
- Ben Howard - Noonday Dream
- Adwaith - Melyn
- Gwidaith Hen Fran - Cedors Hen Wrach
- Metallica - Metallica
- Bloc Party - Silent Alarm
- Maxthor - Another World
- Alun Tan Lan - Y Distawrwydd
非常感谢Pace对项目的赞助,并帮助将 Wails 移植到 Apple Silicon !
如果您正在寻找一个强大并且快速和易于使用的项目管理工具,可以看看他们!