Kotlin/Wasm と WASI を使ってみる
このチュートリアルでは、さまざまな WebAssembly 仮想マシンでWebAssembly System Interface (WASI) を使用して、シンプルなKotlin/Wasm アプリケーションを実行する方法を説明します。
Node.js、Deno、およびWasmEdge 仮想マシンで実行されるアプリケーションの例を見つけることができます。出力は、標準の WASI API を使用するシンプルなアプリケーションです。
現在、Kotlin/Wasm は Preview 1 としても知られている WASI 0.1 をサポートしています。 WASI 0.2 のサポートは、今後のリリースで計画されています。
Kotlin/Wasm ツールチェーンは、Node.js タスク (
wasmWasiNode*) をすぐに利用できる形で提供します。 Deno や WasmEdge を利用するものなど、プロジェクト内の他のタスクバリアントは、カスタムタスクとして含まれています。
開始する前に
IntelliJ IDEA の最新バージョンをダウンロードしてインストールします。
IntelliJ IDEA で ファイル | 新規 | バージョン管理からプロジェクト を選択して、Kotlin/Wasm WASI テンプレートリポジトリをクローンします。
コマンドラインからクローンすることもできます。
bashgit clone [email protected]:Kotlin/kotlin-wasm-wasi-template.git
アプリケーションを実行する
表示 | ツールウィンドウ | Gradle を選択して、Gradle ツールウィンドウを開きます。
プロジェクトがロードされると、Gradle ツールウィンドウで kotlin-wasm-wasi-example の下に Gradle タスクを見つけることができます。
タスクを正常にロードするには、Gradle JVM として少なくとも Java 11 が必要です。
kotlin-wasm-wasi-example | Tasks | kotlin node から、以下のいずれかの Gradle タスクを選択して実行します。
- wasmWasiNodeRun: Node.js でアプリケーションを実行します。
- wasmWasiDenoRun: Deno でアプリケーションを実行します。
- wasmWasiWasmEdgeRun: WasmEdge でアプリケーションを実行します。
Windows プラットフォームで Deno を使用する場合は、
deno.exeがインストールされていることを確認してください。詳細については、Deno のインストールに関するドキュメントを参照してください。
または、kotlin-wasm-wasi-template ルートディレクトリからターミナルで以下のいずれかのコマンドを実行します。
Node.js でアプリケーションを実行するには:
bash./gradlew wasmWasiNodeRunDeno でアプリケーションを実行するには:
bash./gradlew wasmWasiDenoRunWasmEdge でアプリケーションを実行するには:
bash./gradlew wasmWasiWasmEdgeRun
アプリケーションが正常にビルドされると、ターミナルにメッセージが表示されます。

アプリケーションをテストする
Kotlin/Wasm アプリケーションがさまざまな仮想マシンで正しく動作することもテストできます。
Gradle ツールウィンドウで、kotlin-wasm-wasi-example | Tasks | verification から以下のいずれかの Gradle タスクを実行します。
- wasmWasiNodeTest: Node.js でアプリケーションをテストします。
- wasmWasiDenoTest: Deno でアプリケーションをテストします。
- wasmWasiWasmEdgeTest: WasmEdge でアプリケーションをテストします。

または、kotlin-wasm-wasi-template ルートディレクトリからターミナルで以下のいずれかのコマンドを実行します。
Node.js でアプリケーションをテストするには:
bash./gradlew wasmWasiNodeTestDeno でアプリケーションをテストするには:
bash./gradlew wasmWasiDenoTestWasmEdge でアプリケーションをテストするには:
bash./gradlew wasmWasiWasmEdgeTest
ターミナルにテスト結果が表示されます。

次のステップ
Kotlin Slack で Kotlin/Wasm コミュニティに参加しましょう。
他の Kotlin/Wasm の例を試す:
