zserge / lorca
- суббота, 17 ноября 2018 г. в 00:18:06
Go
Build cross-platform modern desktop apps in Go + HTML5
A very small library to build modern HTML5 desktop apps in Go. It uses Chrome browser as a UI layer. Unlike Electron it doesn't bundle Chrome into the app package, but rather reuses the one that is already installed. Lorca establishes a connection to the browser window and allows calling Go code from the UI and manipulating UI from Go in a seamless manner.
Also, limitations by design:
If you want to have more control of the browser window - consider using webview library with a similar API, so migration would be smooth.
ui, err := lorca.New("", "", 480, 320)
defer ui.Close()
// Bind Go function to be available in JS. Go function may be long-running and
// blocking - in JS it's represented with a Promise.
ui.Bind("add", func(a, b int) int { return a + b })
// Call JS function from Go. Functions may be asynchronous, i.e. return promises
n := ui.Eval(`Math.random()`).Float()
// Call JS that calls Go and so on and so on...
m := ui.Eval(`add(2, 3)`).Int()
// Wait for the browser window to be closed
<-ui.Done()
Also, see an example for more details about embedding assets and packaging binaries.
There is kind of a legend, that before his execution Garcia Lorca have seen a sunrise over the heads of the soldiers and he said "And yet, the run rises...". Probably it was the beginning of a poem. (J. Brodsky)
Lorca is an anagram of Carlo, a project with a similar goal for Node.js.
Code is distributed under MIT license, feel free to use it in your proprietary projects as well.