(资料图片)
Go 最新版本体验的话,可以安装 gotip(建议科学上网)。命令如下:
$goinstallgolang.org/dl/gotip@latest$gotipdownload
一个简单的 Go Wasm Demo:
packagemainfuncmain(){println("脑子进煎鱼了")}
将上述 Go 程序编译为 .wasm 文件。如下编译命令:
$GOARCH=wasmGOOS=wasip1gotipbuild-oapp.wasmmain.go
快速运行体验的话,可以使用 tetratelabs/wazero[2]开源项目,在 Go 里比较火,相对好上手。
安装命令(建议科学上网):
$curlhttps://wazero.io/install.sh|shtetratelabs/wazeroinfocheckingGitHubforlatesttagtetratelabs/wazeroinfofoundversion:1.0.3forv1.0.3/darwin/amd64tetratelabs/wazeroinfoinstalled./bin/wazero
安装完毕后,运行 ./bin/wazero run app.wasm
。就会输出结果:脑子进煎鱼了。
一个快速入门 Go1.21 WASM WASI 的体验就完成啦!未来 Go 在 WASM 上的开发空间也逐步扩大了。
WebAssembly 在 Go 语言中的适配,总体上是忧喜参半的。因为你可以看到 syscall/js 库其实已经提交了 5 年之久,很多人提出不少问题。Go 核心团队本身并没有太多的意愿维护和更新他。
值得开心的是,截止 2023 年。在 Go WASI 上还是有关注热度的。因此有像原提案作者会持续更新 WAS 的 P1P2 的支持。作为一门新技术,我们需要持续关注。但不太建议使用过深,我们需要关注 “可持续发展” 的长期考量。
无论如何,欢迎跑通和学习这一个 Demo!
Copyright © 2015-2022 游戏头条网版权所有 备案号:沪ICP备2022005074号-20 联系邮箱:58 55 97 3@qq.com