5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-01 14:02:17 +08:00
wails/README.md
2019-04-08 19:18:39 +10:00

3.1 KiB

Wails

A framework for building desktop applications using Go & Web Technologies.

About

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

::: tip 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.