Build desktop applications using Go & Web Technologies.
Click me to Open/Close the directory listing
The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!
PLEASE NOTE: As we are approaching the v2 release, we are not accepting any new feature requests or bug reports for v1. If you have a critical issue, please open a ticket and state why it is critical.
Wails v2 has been released in Beta for all 3 platforms. Check out the new website if you are interested in trying it out.
The legacy v1 docs can be found at https://wails.app.
- Use standard Go for the backend
- Use any frontend technology to build your UI
- Quickly create Vue, Vuetify or React frontends for your Go programs
- Expose Go methods/functions to the frontend via a single bind command
- Uses native rendering engines - no embedded browser
- Shared events system
- Native file dialogs
- Powerful cli tool
- Multiplatform
This project is supported by these kind people / companies:
![](https://github.com/bearsh/wails/raw/master/img/silver%20sponsor.png)
![](https://github.com/letheanVPN.png?size=100)
![](https://github.com/bearsh/wails/raw/master/img/bronze%20sponsor.png)
![](https://github.com/snider.png?size=100)
![](https://github.com/codydbentley.png?size=100)
![](https://github.com/CrackDavid.png?size=100)
![](https://github.com/bearsh/wails/raw/master/website/static/img/easyweb.png)
![](https://github.com/matryer.png)
![](https://github.com/bearsh/wails/raw/master/assets/images/jetbrains-grayscale.png)
![](https://github.com/tc-hib.png?size=55)
![](https://github.com/picatz.png?size=50)
![](https://github.com/tylertravisty.png?size=50)
![](https://github.com/akhudek.png?size=50)
![](https://github.com/trea.png?size=50)
![](https://github.com/LanguageAgnostic.png?size=55)
![](https://github.com/fcjr.png?size=55)
![](https://github.com/nickarellano.png?size=60)
![](https://github.com/bglw.png?size=65)
![](https://github.com/jugglingjsons.png?size=50)
![](https://github.com/marcus-crane.png?size=65)
![](https://github.com/bbergshaven.png?size=45)
![](https://github.com/Gilgames000.png?size=45)
![](https://github.com/ilgityildirim.png?size=50)
![](https://github.com/questrail.png?size=50)
![](https://github.com/DonTomato.png?size=45)
![](https://github.com/taigrr.png?size=55)
![](https://github.com/charlie-dee.png?size=55)
![](https://github.com/EdenNetworkItalia.png?size=65)
![](https://github.com/michaelolson1996.png?size=55)
![](https://github.com/GargantuaX.png?size=45)
Wails uses cgo to bind to the native rendering engines so a number of platform dependent libraries are needed as well as an installation of Go. The basic requirements are:
- Go 1.16
- npm
Make sure you have the xcode command line tools installed. This can be done by running:
xcode-select --install
sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev
Debian: 8, 9, 10
Ubuntu: 16.04, 18.04, 19.04
Also succesfully tested on: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, Kali, Neon, Pop!_OS
sudo pacman -S webkit2gtk gtk3
Also succesfully test on: 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 requires gcc and related tooling. The recommended download is from http:https://tdm-gcc.tdragon.net/download. Once this is installed, you are good to go.
Ensure Go modules are enabled: GO111MODULE=on and go/bin is in your PATH variable.
Installation is as simple as running the following command:
go get -u github.com/wailsapp/wails/cmd/wails
It is recommended at this stage to read the comprehensive documentation at https://wails.app.
-
Is this an alternative to Electron?
Depends on your requirements. It's designed to make it easy for Go programmers to make lightweight desktop applications or add a frontend to their existing applications. Whilst Wails does not currently offer hooks into native elements such as menus, this may change in the future.
-
Who is this project aimed at?
Go programmers who want to bundle an HTML/JS/CSS frontend with their applications, without resorting to creating a server and opening a browser to view it.
-
What's with the name?
When I saw WebView, I thought "What I really want is tooling around building a WebView app, a bit like Rails is to Ruby". So initially it was a play on words (Webview on Rails). It just so happened to also be a homophone of the English name for the Country I am from. So it stuck.
Without the following people, this project would never have existed:
- Dustin Krysak - His support and feedback has been immense. More patience than you can throw a stick at (Not long now Dustin!).
- Serge Zaitsev - Creator of Webview which Wails uses for the windowing.
- Byron - At times, Byron has single handedly kept this project alive. Without his incredible input, we never would have got to 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
A huge thanks to Pace for sponsoring the project and helping the efforts to get Wails ported to Apple Silicon!
If you are looking for a Project Management tool that's powerful but quick and easy to use, check them out!
A special thank you to JetBrains for donating licenses to us!
Please click the logo to let them know your appreciation!