Description
Guark is an open-source framework to build cross platform desktop GUI applications.
Guark alternatives and similar packages
Based on the "GUI" category.
Alternatively, view Guark alternatives based on common mentions on social networks and blogs.
-
qt
Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly -
webview
Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows). -
go-astilectron
DISCONTINUED. Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron) -
gosx-notifier
gosx-notifier is a Go framework for sending desktop notifications to OSX 10.8 or higher -
one-file-pdf
A minimalist Go PDF writer in 1982 lines. Draws text, images and shapes. Helps understand the PDF format. Used in production for reports. -
energy
Energy is a framework developed by Go language based on CEF (Chromium Embedded Framework) for developing cross-platform desktop applications for Windows, Mac OS X, and Linux -
mac-activity-tracker
A library to notify about any (pluggable) activity on your machine, and let you take action as needed -
gio
Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Guark or a related project?
Popular Comparisons
README
Guark Guark allows you to build beautiful user interfaces using modern web technologies such as Vue.js, React.js..., while your app logic handled and powered by the amazing Go. Installation โ Getting Started โ Contributing โ License
๐ณ About The Project
Guark is an open-source framework to build cross platform desktop GUI applications.
๐ข What Guark stands for?
Go + Quark = Guark
๐ฎ Guark mission
Simplify cross platform desktop apps development.
๐ธ How it works
Demo Video: https://youtu.be/_k_tq9sj-do
Guark backend and logic part handled by native Go code, while the user interfaces built with modern web technologies (Vue.js, React.js, etc...), and with Guark javascript API you can communicate between your Go and UI framework, and calling your exported Go functions and plugin(s) methods.
๐ Main Features
- Desktop applications with GO โฅ
- One codebase for Gnu/Linux, macOS, and Windows.
- UI Hot Reload.
- You can use any front end framework.
- Supports Chrome, and native webview engine or both.
- Windows MSI bundler builtin.
๐ Installation
1. Install guark CLI tool:
go get -u github.com/guark/guark/cmd/guark
2. Some Requirements:
// fedora
sudo dnf install gtk3-devel webkit2gtk3-devel gcc-c++ pkgconf-pkg-config
// Ubuntu
sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev build-essential
// Windows
// https://jmeubank.github.io/tdm-gcc/download/
Getting Started
After installing guark CLI tool, the next step is to create a new guark project based on the template that you like:
Create a new project
# cd to empty directory and run:
guark init --template vue --mod github.com/username/appname
Start Dev Server
After creating new project run:
guark run
Export your first GO function to JS API
1. Create a new file in lib/funcs
directory:
// lib/funcs/foo_bar.go
import (
"github.com/guark/guark/app"
)
func FooBar(c app.Context) (interface{}, error) {
c.App.Log.Debug("Foo bar called")
return "This is a my return value to javasript", nil
}
2. Then export it to Guark JS API in lib/config.go
file:
// Exposed functions to guark Javascript api.
var Funcs = app.Funcs{
"foo": funcs.FooBar,
}
3. Then you can call your function in javascript:
import g from "guark"
g.call("foo")
.then(res => console.log(res))
.catch(err => console.error(err))
See Vue template as an example: https://github.com/guark/vue
Guark Engines:
You can change the engine in guark.yaml
file.
webview
: Uses native system webview.chrome
: Uses and requires google chrome.hybrid
: Uses chrome if exists in the system, if chrome not available guark will switch to native webview by default.
Build Your App
You can build your app with
guark build
Bundle Windows App
After building your app you can bundle your windows app into msi using WIX.
guark bundle
Wix required!
Install it from: https://wixtoolset.org/
Cross Compiling To Windows From Gnu/Linux:
You can build windows app from your linux based system, using mingw64
1. Install mingw64:
// Fedora
sudo dnf install mingw64-gcc
// Ubuntu
sudo apt install binutils-mingw-w64
2. Configure guark-build.yaml
File:
Double check the binary paths in guark-build.yaml
.
3. Build The App:
# this command will build and compile linux, and windows app. you can find your compiled apps in `dist/` directory.
guark build --target linux --target windows
You can use any cross compiler for example: guark build --target darwin
. just change the options in guark-build.yaml
file.
Note
You can also bundle windows app into MSI file from your linux based system via guark bundle
, but you need to install wix tools:
# fedora
dnf install msitools
# Ubuntu
sudo apt-get install wixl
Contributing
PRs, issues, and feedback from ninja gophers are very welcomed.
License
Guark is provided under the MIT License.
*Note that all licence references and agreements mentioned in the Guark README section above
are relevant to that project's source code only.