Go Toolchain
in WebAssembly
2020-02-25 Go 1.14 Release Party
Hajime Hoshi (星一)
自己紹介
アジェンダ
Go と WebAssembly
Go をブラウザで動かすには?
GopherJS
WebAssembly
Go と WebAssembly
GOOS=js GOARCH=wasm go build ./path/to/yourpackage
WebAssembly (Go) から JavaScript 関数を呼ぶには?
WebAsesmbly (Go)
Go Assembly (CallImport)
syscall/js
wasm_exec.js
call
Browser / node.js
go.importObject.go
作ったもの
Go ツールチェーンと Go
GOOS=js GOARCH=wasm go build cmd/go
Asobiba (遊び場)
デモ
Playground 先行事例
どう動いているのか
処理の流れ
JavaScript
疑似ファイルシステム (fs)
標準ライブラリ
キャッシュ
go.wasm
compile.wasm
asm.wasm
link.wasm
ファイルシステムの偽造
プロセスの偽造
go.wasm (親)
compile.wasm (子)
標準 (エラー) 出力
標準入力
JavaScript
標準 (エラー) 出力
標準入力
標準ライブラリの修正
GOPROXY の設定
その他
まとめ
JavaScript
疑似ファイルシステム (fs)
標準ライブラリ
キャッシュ
go.wasm
compile.wasm
asm.wasm
link.wasm
今後の課題