5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-03 02:31:58 +08:00
Create beautiful applications using Go
Go to file
2019-12-10 18:00:24 +11:00
.github chore: add inprogress label 2019-08-19 09:01:44 +10:00
.vscode Linux db (#182) 2019-08-08 21:04:59 +10:00
cmd v0.20.0 2019-12-05 08:28:17 +11:00
lib Windows console (#299) 2019-11-27 22:55:19 +11:00
licenses updated licenses + gomod 2019-02-20 22:48:59 +11:00
runtime Windows console (#299) 2019-11-27 22:55:19 +11:00
scripts Windows console (#299) 2019-11-27 22:55:19 +11:00
.eslintignore feat: significant overhaul of runtime 2019-07-20 19:32:30 +10:00
.eslintrc feat: significant overhaul of runtime 2019-07-20 19:32:30 +10:00
.gitignore chore: bump version 2019-07-13 22:30:32 +10:00
.goreleaser.yml release 0.11.3 2019-04-25 20:14:10 +10:00
.hound.yml fix: more lint fixes 2019-07-13 22:10:43 +10:00
.jshintrc chore: add .jshintrc file to indicate es6 2019-06-19 20:54:36 +10:00
app_other.go fix: create platform specific init 2019-11-28 22:47:41 +11:00
app_windows.go fix: create platform specific init 2019-11-28 22:47:41 +11:00
app.go fix: create platform specific init 2019-11-28 22:47:41 +11:00
azure-pipelines.yaml build: fix filename 2019-08-19 22:54:06 +10:00
azure-pipelines.yml build: fix filename 2019-08-19 22:54:06 +10:00
CHANGELOG.md chore: Version Bump 2019-07-20 19:40:43 +10:00
cli.go feat: significant overhaul of runtime 2019-07-20 19:32:30 +10:00
config.go fix: detect encoding on windows (#266) 2019-10-24 16:04:32 +11:00
CONTRIBUTORS.md Windows console (#299) 2019-11-27 22:55:19 +11:00
go.mod v0.20.0 2019-12-05 08:28:17 +11:00
go.sum fix: detect encoding on windows (#266) 2019-10-24 16:04:32 +11:00
LICENSE Update license and readme 2019-04-08 19:18:39 +10:00
logo_cropped.png Updates to README 2019-12-10 18:00:24 +11:00
README.md Updates to README 2019-12-10 18:00:24 +11:00
runtime.go feat: significant overhaul of runtime 2019-07-20 19:32:30 +10:00


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

CodeFactor CodeFactor Awesome Pipelines

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
  • 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

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.12
  • npm

MacOS

Make sure you have the xcode command line tools installed. This can be done by running:

xcode-select --install

Linux

Debian/Ubuntu

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

Arch Linux

sudo pacman -S webkit2gtk gtk3

Also succesfully test on: Manjaro & ArcoLinux

Centos

sudo yum install webkitgtk3-devel gtk3-devel

CentOS 6, 7

Fedora

sudo yum install webkit2gtk3-devel gtk3-devel

Fedora 29, 30

VoidLinux & VoidLinux-musl

xbps-install gtk+3-devel webkit2gtk-devel

Gentoo

sudo emerge gtk+:3 webkit-gtk

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

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

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 (Not long now Dustin!).
  • Serge Zaitsev - Creator of Webview which Wails uses for the windowing.

And without these people, it wouldn't be what it is today. A huge thank you to each and every one of you!

Special Mentions:

  • 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:

Licensing

FOSSA Status