- Go 66.2%
- JavaScript 11.9%
- HTML 10.5%
- Objective-C 4.2%
- NSIS 1.8%
- Other 5.4%
|
|
||
|---|---|---|
| .github/ISSUE_TEMPLATE | ||
| .vscode | ||
| cmd | ||
| licenses | ||
| scripts | ||
| wailsruntimeassets | ||
| .gitignore | ||
| .goreleaser.yml | ||
| app.go | ||
| app_cli.go | ||
| app_config.go | ||
| binding_function.go | ||
| binding_manager.go | ||
| binding_method.go | ||
| event_manager.go | ||
| go.mod | ||
| go.sum | ||
| ipc_call.go | ||
| ipc_event.go | ||
| ipc_log.go | ||
| ipc_manager.go | ||
| ipc_message.go | ||
| ipc_response.go | ||
| LICENSE | ||
| log.go | ||
| log_custom.go | ||
| README.md | ||
| renderer.go | ||
| renderer_headless.go | ||
| renderer_webview.go | ||
| runtime.go | ||
| runtime_dialog.go | ||
| runtime_events.go | ||
| runtime_filesystem.go | ||
| runtime_log.go | ||
| runtime_window.go | ||
| utils.go | ||
| wails-mewn.go | ||

A framework for building desktop applications using Go & Web Technologies.
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 libraries/frameworks for the backend
- Use any frontend technology to build your UI
- 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
Installation
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.11 or above
- npm
MacOS
Make sure you have the xcode command line tools installed. This can be done by running:
xcode-select --install
Linux
Ubuntu 18.04
sudo apt install pkg-config build-essential libgtk-3-dev libwebkit2gtk-4.0-dev
Note: If you have successfully installed these dependencies on a different flavour of Linux, please consider submitting a PR.
Windows
Windows requires gcc and related tooling. The recommended download is from http://tdm-gcc.tdragon.net/download. Once this is installed, you are good to go.
Installation
Installation is as simple as running the following command:
go get -u github.com/wailsapp/wails/cmd/wails
Next Steps
It is recommended at this stage to read the comprehensive documentation at https://wails.app.
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. 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 HMTL frontend with their applications, without resorting to creating a server and opening a browser to view it.
Shoulders of Giants
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.
- Serge Zaitsev - Creator of Webview which Wails uses for the windowing.
Special Mentions:
- Bill Kennedy - Go guru, encourager and all-round nice guy, whose energy and inspiration powered me on when I had none left.
- Mark Bates - Creator of Packr, inspiration for packing strategies.