关于Go的WebAssembly

吴欣然
2023-12-01

https://github.com/stdiopt/gowasm-experiments  这里有些例子

https://github.com/justinclift/wasmGraph1 这也是一个例子

https://bellard.org/jslinux/   在浏览器中运行linux,里面还有windows2000。 体会WebAssembly的强大

Go1.11开始支持WebAssembly,对应的操作系统名为js,对应的CPU类型为wasm。

目前还无法通过 go run 的方式直接运行输出的wasm文件,需要通过 go build 的方式生成wasm目标文件,然后通过Node环境执行。

通过以下命令将hello.go编译为a.out.wasm:$ GOARCH=wasm GOOS=js go build -o main.wasm main.go


1 测试代码 main.go

package main
import (
	"fmt"
)

func main() {
	fmt.Println("hello,wasm")
}

2 编译 

GOOS=js GOARCH=wasm go build -o main.wasm

3 $GOROOT/misc/wasm  目录下有导入文件 wasm_exec.js 及 wasm_exec.html

4 用node运行,即可看到输出   node wasm_exec.js main.wasm


github.com/elliotforbes/oak       Oak - The Go WebAssembly Framework

但我测试go原有功能却失败了

func mycoolfunc(i []js.Value) {
    println("My Awesome Function")
}

不能显示出文字。

 类似资料: