GoでWebAssemblyでHelloWorld
まもなくGoでWebAssemblyがサポートされるということで、"Hello, World"をやってみることにした。
参考にしたのはこのページ。
参考にしたというか、手順にそってそのままやってみた。
go1.11をダウンロード
GoのDownloadsページから。
$ go get golang.org/dl/go1.11beta3
$ go1.11beta3 download
$ go1.11beta3 version
go version go1.11beta3 windows/amd64
Hello, Webassembly!! ファイルを作成してビルド
コードを作成
コードは、"Hello, Webassembly!!"を出力するだけ。
package main
import "fmt"
func main() {
fmt.Println("Hello, Webassembly!!")
}
ビルド
go1.11beta3でビルドする。
GOOSは"js"、GOARCHは"wasm"を指定。
$ GOOS=js GOARCH=wasm go1.11beta3 build -o test.wasm test.go
ビルドが正常終了し、test.wasmが生成されていることを確認。
ブラウザで表示
wasm_exec.html、wasm_exec.jsをコピー
go1.11beta3のダウンロードフォルダのmisc/wasmに入っているので、そのまま作業中のディレクトリにコピー。
Goでwebサーバを作成
test.wasm、wasm_exec.html、wasm_exec.jsを同じディレクトリに配置する。
配置したディレクトリのファイルをレスポンスするwebサーバをGoで作成して起動。
ブラウザから実行
起動したサーバにブラウザからアクセスすると、左上に"Run"ボタンが表示されている。
"Run"ボタンを押してみて、consoleに"Hello, Webassembly!!"と表示されたら成功。
ちゃんと表示された。確かにjsからGoのコードが実行できているみたい。
仕組みの理解が全然足りていないけど、おもしろい。
次はもう少し複雑なものを動かしてみたいし、使いどころについても確認してみたい。
この記事が気に入ったらサポートをしてみませんか?