wasmgo

Compiles Go to WASM and deploys to the jsgo.io CDN

Github星跟踪图

wasmgo

The wasmgo command compiles Go to WASM, and serves the binary locally or deploys to the jsgo.io CDN.

Install

go get -u github.com/dave/wasmgo

Serve command

wasmgo serve [flags] [package]

Serves the WASM with a local web server (default to port 8080). Refresh the browser to recompile.

Deploy command

wasmgo deploy [flags] [package]

Deploys the WASM to the jsgo.io CDN.

Global flags

-b, --build string     Build tags to pass to the go build command.
-c, --command string   Name of the go command. (default "go")
-f, --flags string     Flags to pass to the go build command.
-h, --help             help for wasmgo
-i, --index string     Specify the index page template. Variables: Script, Loader, Binary. (default "index.wasmgo.html")
-o, --open             Open the page in a browser. (default true)
-v, --verbose          Show detailed status messages.

Deploy flags

-j, --json              Return all template variables as a json blob from the deploy command.
-t, --template string   Template defining the output returned by the deploy command. Variables: Page, Script, Loader, Binary. (default "{{ .Page }}")

Serve flags

-p, --port int   Server port. (default 8080)

Package

Omit the package argument to use the code in the current directory.

Examples

Here's a simple hello world:

wasmgo serve github.com/dave/wasmgo/helloworld

The page (http://localhost:8080/) opens in a browser.

Here's an amazing 2048 clone from hajimehoshi:

go get -u github.com/hajimehoshi/ebiten/examples/2048/...
wasmgo deploy -b=example github.com/hajimehoshi/ebiten/examples/2048

The deployed page opens in a browser.

Index

You may specify a custom index page by including index.wasmgo.html in your project or by using the index
command line flag.

Your index page should look something like this:

<html>
<head><meta charset="utf-8"></head>
<body>
	<script src="{{ .Script }}"></script>
	<script src="{{ .Loader }}"></script>
</body>
</html>

Template variables

The index page template and the -t flag are both Go templates with several variables available:

  • Page
    The URL of the page on jsgo.io (deploy command output only).

  • Script
    To load and execute a WASM binary, a some JS bootstap code is required. The wasmgo command uses a minified
    version of the example in the official Go repo.
    The URL of this script is the Script template variable.

  • Loader
    The loader JS is a simple script that loads and executes the WASM binary. It's based on the example
    in the official Go repo
    ,
    but simplified to execute the program immediately instead. The URL of this script is the Loader template variable.

  • Binary
    The URL of the WASM binary file.

Static files

Unfortunately wasmgo does not host your static files. I recommend using rawgit.com
to serve static files.

Package splitting

The wasmgo deploy can't yet split the binary output by Go package, can you help?

主要指标

概览
名称与所有者dave/wasmgo
主编程语言Go
编程语言Go (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2018-08-14 18:31:36
推送于2023-03-07 00:43:48
最后一次提交2019-12-16 09:45:42
发布数2
最新版本名称v0.0.2 (发布于 )
第一版名称v0.0.1 (发布于 )
用户参与
星数145
关注者数10
派生数13
提交数24
已启用问题?
问题数6
打开的问题数3
拉请求数1
打开的拉请求数1
关闭的拉请求数1
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?