Skip to content

Kotlin/Wasm と WASI を使ってみる

Kotlin/Wasm はアルファ版です。いつでも変更される可能性があります。

Kotlin/Wasm コミュニティに参加しましょう。

このチュートリアルでは、さまざまな WebAssembly 仮想マシンでWebAssembly System Interface (WASI) を使用して、シンプルなKotlin/Wasm アプリケーションを実行する方法を説明します。

Node.jsDenoWasmEdge 仮想マシンで実行されるアプリケーションの例を見つけることができます。出力は、標準の WASI API を使用するシンプルなアプリケーションです。

現在、Kotlin/Wasm は Preview 1 としても知られている WASI 0.1 をサポートしています。 WASI 0.2 のサポートは、今後のリリースで計画されています。

Kotlin/Wasm ツールチェーンは、Node.js タスク (wasmWasiNode*) をすぐに利用できる形で提供します。 Deno や WasmEdge を利用するものなど、プロジェクト内の他のタスクバリアントは、カスタムタスクとして含まれています。

開始する前に

  1. IntelliJ IDEA の最新バージョンをダウンロードしてインストールします。

  2. IntelliJ IDEA で ファイル | 新規 | バージョン管理からプロジェクト を選択して、Kotlin/Wasm WASI テンプレートリポジトリをクローンします。

    コマンドラインからクローンすることもできます。

    bash
    git clone [email protected]:Kotlin/kotlin-wasm-wasi-template.git

アプリケーションを実行する

  1. 表示 | ツールウィンドウ | Gradle を選択して、Gradle ツールウィンドウを開きます。

    プロジェクトがロードされると、Gradle ツールウィンドウで kotlin-wasm-wasi-example の下に Gradle タスクを見つけることができます。

    タスクを正常にロードするには、Gradle JVM として少なくとも Java 11 が必要です。

  2. kotlin-wasm-wasi-example | Tasks | kotlin node から、以下のいずれかの Gradle タスクを選択して実行します。

    • wasmWasiNodeRun: Node.js でアプリケーションを実行します。
    • wasmWasiDenoRun: Deno でアプリケーションを実行します。
    • wasmWasiWasmEdgeRun: WasmEdge でアプリケーションを実行します。

    Windows プラットフォームで Deno を使用する場合は、deno.exe がインストールされていることを確認してください。詳細については、Deno のインストールに関するドキュメントを参照してください。

    Kotlin/Wasm and WASI tasks

または、kotlin-wasm-wasi-template ルートディレクトリからターミナルで以下のいずれかのコマンドを実行します。

  • Node.js でアプリケーションを実行するには:

    bash
    ./gradlew wasmWasiNodeRun
  • Deno でアプリケーションを実行するには:

    bash
    ./gradlew wasmWasiDenoRun
  • WasmEdge でアプリケーションを実行するには:

    bash
    ./gradlew wasmWasiWasmEdgeRun

アプリケーションが正常にビルドされると、ターミナルにメッセージが表示されます。

Kotlin/Wasm and WASI app

アプリケーションをテストする

Kotlin/Wasm アプリケーションがさまざまな仮想マシンで正しく動作することもテストできます。

Gradle ツールウィンドウで、kotlin-wasm-wasi-example | Tasks | verification から以下のいずれかの Gradle タスクを実行します。

  • wasmWasiNodeTest: Node.js でアプリケーションをテストします。
  • wasmWasiDenoTest: Deno でアプリケーションをテストします。
  • wasmWasiWasmEdgeTest: WasmEdge でアプリケーションをテストします。

Kotlin/Wasm and WASI test tasks

または、kotlin-wasm-wasi-template ルートディレクトリからターミナルで以下のいずれかのコマンドを実行します。

  • Node.js でアプリケーションをテストするには:

    bash
    ./gradlew wasmWasiNodeTest
  • Deno でアプリケーションをテストするには:

    bash
    ./gradlew wasmWasiDenoTest
  • WasmEdge でアプリケーションをテストするには:

    bash
    ./gradlew wasmWasiWasmEdgeTest

ターミナルにテスト結果が表示されます。

Kotlin/Wasm and WASI test

次のステップ

Kotlin Slack で Kotlin/Wasm コミュニティに参加しましょう。

Join the Kotlin/Wasm community

他の Kotlin/Wasm の例を試す: