mimikunの技術メモ

mimikunがプログラミング中調べてわかったことをまとめていくブログです

WebAssemblyをやってみる

興味あったのでやってみる. Rustはわからんので, 書いたことのあるC/C++を使う.

公式ページのDeveloper’s Guide にはToolchain入れろって書いてあるけど, だるいのでDockerを使ってみる.

成果物はここに置いてある. mimikun/wasm-sample

mkdir -p $WORKDIR/wasm-sample
mkdir dist
touch hello.c
docker pull trzeci/emscripten
docker run --rm -v $(pwd):/src trzeci/emscripten emcc hello.c -s WASM=1 -o dist/hello.html
#include <stdio.h>
int main(int argc, char ** argv) {
  printf("Hello, world!\n");
}

そのままhtmlファイルを開くと, CORSで弾かれる.

なので, emrunコマンドで開く必要がある.

$ emrun --no_browser --port 8080 .

Dockerで実行する場合はこう (参考: https://puzzle.github.io/tws18-webassembly-slides)

$ docker run --rm -p 8080:8080 -v $(pwd):/src trzeci/emscripten emrun --no_browser --hostname 0.0.0.0 --port 8080 dist/

WebAssembly, うまく使えば便利だと思った.