Wails
Create beautiful applications using Go
Build desktop applications using Go & Web Technologies.
English · 简体中文 · 日本語 · 한국어 · Español · Português · Русский · Francais · Uzbek · Deutsch · Türkçe · Bahasa Indonesia
#Table of Contents
- Table of Contents
- Introduction
- Features
- Getting Started
- Sponsors
- FAQ
- Stargazers over time
- Contributors
- License
- Inspiration
#Introduction
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!
#Features
- Use standard Go for the backend
- Use any frontend technology you are already familiar with to build your UI
- Quickly create rich frontends for your Go programs using pre-built templates
- Easily call Go methods from Javascript
- Auto-generated Typescript definitions for your Go structs and methods
- Native Dialogs & Menus
- Native Dark / Light mode support
- Supports modern translucency and "frosted window" effects
- Unified eventing system between Go and Javascript
- Powerful cli tool to quickly generate and build your projects
- Multiplatform
- Uses native rendering engines - no embedded browser!
#Roadmap
The project roadmap may be found here. New functionality and public behaviour changes use a WEP (Wails Enhancement Proposal), submitted as a draft pull request rather than a feature-request issue.
#Getting Started
Wails has two active versions:
| Version | Status | Install | Docs |
|---|---|---|---|
| v2 | Stable | go install github.com/wailsapp/wails/v2/cmd/wails@latest |
wails.io |
| v3 | Beta | go install github.com/wailsapp/wails/v3/cmd/wails3@latest |
v3.wails.io |
Full installation instructions are available for v2 and v3.
#Sponsors
This project is supported by these kind people / companies:
#Powered By
#FAQ
-
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. Wails does offer native elements such as menus and dialogs, so it could be considered a lightweight electron alternative.
-
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.
#Stargazers over time
#Contributors
The contributors list is getting too big for the readme! All the amazing people who have contributed to this project have their own page here.
#License
#Inspiration
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