kotlinでWebAssemblyしてみる(環境構築編)
ちまたでGoがWebAssemblyに対応する予定ということで話題になっていますが、実はkotlinをWebAssemblyにコンパイルすることが出来ます。
最近kotlinにハマっており、これはやるしかないと思い、やってみることにしました。
本記事ではkotlinをWebAssemblyにコンパイルできる環境構築と、それを用いて実際にサンプルコードを動作させるところまでやってみます。 内容的には以下のウェブページと同一の事を行います。
環境構築
まずはkotlin-nativeのセットアップを行います。Githubのkotlin-nativeリポジトリにあるReadme.mdと同じことをします。
- git clone https://github.com/JetBrains/kotlin-native.git
- リポジトリをクローンします
- cd kotlin-native
- kotlin-nativeディレクトリに移動します
- ./gradlew dependencies:update
- 依存関係のダウンロードを行います
- ./gradlew bundle
- コンパイラとライブラリをビルドします
- 時間がかかります。まったり待ちましょう。
- MBPで1時間程かかります。
- dist/binにパスを通す
以上で終了です。きちんとパスを通せていれば、kotlincコマンドが動作するはずです。
サンプルを動作させてみる
- git clone https://github.com/ftomassetti/kotlin-wasm-examples.git
- リポジトリをクローンします
- cd kotlin-wasm-examples
- kotlin-wasm-examplesに移動します
- ./build.sh
- コンパイルと成果物のコピーを行います
- cd web
- webディレクトリに移動します
simplehttp2server
- 無ければ以下のコマンドでインストールしてください
brew tap GoogleChrome/simplehttp2server https://github.com/GoogleChrome/simplehttp2server brew install simplehttp2server
http://localhost:5000にブラウザでアクセス
- 信頼書関係のエラーが出ますが無視してください
以上で終了です。正しく動作していればカラフルな画像が表示されているはずです。
まとめ
kotlinをWebAssemblyにコンパイルすることができる環境が完成しました。次はこのサンプルコードの解説を行い、通常のJSとkotlinをコンパイルしたWebAssemblyで動作速度の比較も行いたいと思います。
2018/05/12追記
続き書きました。動作速度の比較は更に次回となります。