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のコードが実行できているみたい。
仕組みの理解が全然足りていないけど、おもしろい。


次はもう少し複雑なものを動かしてみたいし、使いどころについても確認してみたい。


この記事が気に入ったらサポートをしてみませんか?