Kotlin/WasmとWASIの利用を始める
このチュートリアルでは、WebAssembly System Interface (WASI) を使用して、さまざまなWebAssembly仮想マシンでシンプルな Kotlin/Wasm アプリケーションを実行する方法を説明します。
Node.js、Deno、および WasmEdge 仮想マシン上で動作するアプリケーションの例を見つけることができます。出力は、標準のWASI APIを使用するシンプルなアプリケーションです。
現在、Kotlin/WasmはWASI 0.1(Preview 1としても知られています)をサポートしています。 WASI 0.2のサポートは将来のリリースで計画されています。
TIP
Kotlin/Wasm ツールチェインは、Node.js タスク (wasmWasiNode*
) をすぐに利用できる形で提供します。
Deno や WasmEdge を利用するような、プロジェクト内の他のタスクバリアントは、カスタムタスクとして含まれています。
開始する前に
IntelliJ IDEA の最新バージョンをダウンロードしてインストールします。
IntelliJ IDEA で File | New | Project from Version Control を選択して、Kotlin/Wasm WASI テンプレートリポジトリ をクローンします。
コマンドラインからクローンすることもできます。
bashgit clone [email protected]:Kotlin/kotlin-wasm-wasi-template.git
アプリケーションを実行する
View | Tool Windows | Gradle を選択して、Gradle ツールウィンドウを開きます。
プロジェクトのロード後、Gradle ツールウィンドウの kotlin-wasm-wasi-example の下にGradleタスクが見つかります。
NOTE
タスクを正常にロードするには、Gradle JVM として少なくともJava 11が必要です。
kotlin-wasm-wasi-example | Tasks | kotlin node から、以下のGradleタスクのいずれかを選択して実行します。
- wasmWasiNodeRun: Node.js でアプリケーションを実行します。
- wasmWasiDenoRun: Deno でアプリケーションを実行します。
- wasmWasiWasmEdgeRun: WasmEdge でアプリケーションを実行します。
TIP
WindowsプラットフォームでDenoを使用する場合、
deno.exe
がインストールされていることを確認してください。詳細については、Denoのインストールに関するドキュメント を参照してください。
または、 kotlin-wasm-wasi-template
ルートディレクトリからターミナルで以下のコマンドのいずれかを実行します。
Node.js でアプリケーションを実行する場合:
bash./gradlew wasmWasiNodeRun
Deno でアプリケーションを実行する場合:
bash./gradlew wasmWasiDenoRun
WasmEdge でアプリケーションを実行する場合:
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 wasmWasiNodeTest
Deno でアプリケーションをテストする場合:
bash./gradlew wasmWasiDenoTest
WasmEdge でアプリケーションをテストする場合:
bash./gradlew wasmWasiWasmEdgeTest
ターミナルにテスト結果が表示されます。
次のステップ
Kotlin Slack の Kotlin/Wasm コミュニティに参加しましょう。
その他の Kotlin/Wasm の例: