ls -al

仮想通貨やプログラミングに関する事などをつらつらと書き綴ります

kotlinでWebAssemblyしてみる(環境構築編)

ちまたでGoがWebAssemblyに対応する予定ということで話題になっていますが、実はkotlinをWebAssemblyにコンパイルすることが出来ます。

最近kotlinにハマっており、これはやるしかないと思い、やってみることにしました。

本記事ではkotlinをWebAssemblyにコンパイルできる環境構築と、それを用いて実際にサンプルコードを動作させるところまでやってみます。 内容的には以下のウェブページと同一の事を行います。


環境構築

まずはkotlin-nativeのセットアップを行います。Githubのkotlin-nativeリポジトリにあるReadme.mdと同じことをします。

  1. git clone https://github.com/JetBrains/kotlin-native.git
    • リポジトリをクローンします
  2. cd kotlin-native
    • kotlin-nativeディレクトリに移動します
  3. ./gradlew dependencies:update
    • 依存関係のダウンロードを行います
  4. ./gradlew bundle
    • コンパイラとライブラリをビルドします
    • 時間がかかります。まったり待ちましょう。
    • MBPで1時間程かかります。
  5. dist/binにパスを通す

以上で終了です。きちんとパスを通せていれば、kotlincコマンドが動作するはずです。


サンプルを動作させてみる

  1. git clone https://github.com/ftomassetti/kotlin-wasm-examples.git
    • リポジトリをクローンします
  2. cd kotlin-wasm-examples
    • kotlin-wasm-examplesに移動します
  3. ./build.sh
    • コンパイルと成果物のコピーを行います
  4. cd web
    • webディレクトリに移動します
  5. simplehttp2server

    • 無ければ以下のコマンドでインストールしてください
    brew tap GoogleChrome/simplehttp2server https://github.com/GoogleChrome/simplehttp2server
    brew install simplehttp2server
  6. http://localhost:5000にブラウザでアクセス

    • 信頼書関係のエラーが出ますが無視してください

以上で終了です。正しく動作していればカラフルな画像が表示されているはずです。


まとめ

kotlinをWebAssemblyにコンパイルすることができる環境が完成しました。次はこのサンプルコードの解説を行い、通常のJSとkotlinをコンパイルしたWebAssemblyで動作速度の比較も行いたいと思います。

2018/05/12追記

続き書きました。動作速度の比較は更に次回となります。