Skip to content

Releases: maxence-charriere/go-app

handler optimization

24 Feb 05:53
Compare
Choose a tag to compare
  • Gzipping static resources is done by goapp.
  • Only worthy resources are gzipped.
  • Handler serves gzipped files if they are available.
  • goapp update command is back.

Goapp

22 Feb 10:17
Compare
Choose a tag to compare

The goapp cli tool come back and provides an easy way to start and build a project.

# Get the goapp CLI tool:
go get -u github.com/maxence-charriere/app/cmd/goapp

# Init the project layout:
goapp init -v

# Builds a server ready to serve the wasm app and its resources:
goapp build -v

# Launches the server and app in the default browser:
goapp run -v -b default

# Gets help:
goapp help
goapp run -h

Optimize page service

21 Feb 09:01
986d703
Compare
Choose a tag to compare

Summary

  • Returned page are gzipped.

WebAssembly move

20 Feb 06:56
f956d51
Compare
Choose a tag to compare

Hello, it's been a while I did not pushed any update on this repository. I want to give a heads up on what is going on.

What happened?

During the past months I experimented a lot with Windows and a little bit with Linux. I was pretty close to ship a release for Windows but the reason why it did not happened was because it did not met the quality I expected: the Window driver was too hacky and too unstable.

Beside, I experimented a little bit with Linux, it was promising but between all these cross platform developments, I realised it was too big for me alone to handle all the different abstractions.

What's next?

I had been working on this repo for 3 years and honestly, I don't want to give up. I like the way it works to build apps and I believe it have the potential to be useful to a lot of people.

A couple of month ago, Go 1.11 was shipped with experimental support for web assembly. I gave it a try and ported the package to work with the wasm achitecture.

I'am pretty convinced with the result and here are some points I want to highlight:

  • Web is the only platform that works everywhere with specified standards.
  • Wasm lives in the Go repository and gonna be maintained and optimized by top engineers.
  • This package will be focused on 1 platform and I want the best for what I use. So no inequalities between MacOS and Windows.
  • Full DOM access with syscall/js.
  • Desktop app development will still be possible by using this package with Electron.
  • I also built another go package based on my MacOS work that allows to run a website as an app and could be used with this repo.

Where are we now?

The WASM refactor is already implementend and this version put it live. It provide the same api to build an UI and an http.Handler to serve the app that can be used with any http.Server.

You can already see the result of that work there: app demo

Here are the known issues:

  • Can trigger an Out of memory error on mobile (waiting a fix from Go 1.12).
  • Does not work with Microsot Edge (Trying to fix it but in the worst case, Edge will based on webkit soon).
  • Still have to write documentation about how to use it.
  • Go wasm is still experimental and syscall/js can be modified.

A last word

Changing the direction of this package has been a pretty hard decision to take. I get it if it sounds less interesting.

I just want to say that I see an oportunity with an emerging technology (wasm) and I really believe it could make a difference.

Feedbacks are more than welcome.
Thank you so much for following this work until now.

3.3.3

10 Dec 01:17
588b67a
Compare
Choose a tag to compare

general

  • Fix: OnMount is called when a component implements app.Mounter interface.

3.3.2

06 Dec 09:36
b7f485e
Compare
Choose a tag to compare

mac

  • Fix a bug that prevented build on MacOS on 10.14.1.

3.3.1

04 Dec 06:36
f156cfe
Compare
Choose a tag to compare

mac

  • Fix a bug that prevented build on MacOS below 10.14.1.

3.2.12

12 Nov 04:20
Compare
Choose a tag to compare

general

  • Javascript files located in resources/js are included by default when
    javascripts page field is not set.

3.2.11

28 Oct 03:08
Compare
Choose a tag to compare

mac

  • fix mac main thread assertion crash.

3.2.10

26 Oct 08:42
Compare
Choose a tag to compare

general

  • Go dom engine has been rewritten. It is now slightly faster and more memory
    efficient.
▶ benchcmp bench_dom_v1.txt bench_dom_v2.txt
benchmark          old ns/op     new ns/op     delta
BenchmarkDom-8     101266        86335         -14.74%

benchmark          old allocs     new allocs     delta
BenchmarkDom-8     431            281            -34.80%

benchmark          old bytes     new bytes     delta
BenchmarkDom-8     44661         33773         -24.38%

mac

  • Dropping files from finder has been fixed.