Skip to content

Kotlin/Wasm 和 WASI 入门

NOTE

Kotlin/Wasm 处于 Alpha 阶段。它可能随时更改。

加入 Kotlin/Wasm 社区。

本教程演示了如何在各种 WebAssembly 虚拟机中使用 WebAssembly 系统接口 (WASI) 运行一个简单的 Kotlin/Wasm 应用程序。

你可以找到在 Node.jsDenoWasmEdge 虚拟机上运行的应用程序示例。输出是一个使用标准 WASI API 的简单应用程序。

目前,Kotlin/Wasm 支持 WASI 0.1,也称为 Preview 1。计划在未来版本中支持 WASI 0.2

TIP

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 任务。

    NOTE

    你需要至少 Java 11 作为 Gradle JVM,以便任务成功加载。

  2. kotlin-wasm-wasi-example | Tasks | kotlin node 中,选择并运行以下 Gradle 任务之一:

    • wasmWasiNodeRun 在 Node.js 中运行应用程序。
    • wasmWasiDenoRun 在 Deno 中运行应用程序。
    • wasmWasiWasmEdgeRun 在 WasmEdge 中运行应用程序。

    TIP

    在 Windows 平台上使用 Deno 时,请确保 deno.exe 已安装。更多信息请参阅 Deno 的安装文档

    Kotlin/Wasm 和 WASI 任务

或者,在终端中从 kotlin-wasm-wasi-template 根目录运行以下命令之一:

  • 在 Node.js 中运行应用程序:

    bash
    ./gradlew wasmWasiNodeRun
  • 在 Deno 中运行应用程序:

    bash
    ./gradlew wasmWasiDenoRun
  • 在 WasmEdge 中运行应用程序:

    bash
    ./gradlew wasmWasiWasmEdgeRun

应用程序成功构建后,终端会显示一条消息:

Kotlin/Wasm 和 WASI 应用程序

测试应用程序

你还可以测试 Kotlin/Wasm 应用程序在各种虚拟机上是否正常工作。

在 Gradle 工具窗口中,从 kotlin-wasm-wasi-example | Tasks | verification 中运行以下 Gradle 任务之一:

  • wasmWasiNodeTest 在 Node.js 中测试应用程序。
  • wasmWasiDenoTest 在 Deno 中测试应用程序。
  • wasmWasiWasmEdgeTest 在 WasmEdge 中测试应用程序。

Kotlin/Wasm 和 WASI 测试任务

或者,在终端中从 kotlin-wasm-wasi-template 根目录运行以下命令之一:

  • 在 Node.js 中测试应用程序:

    bash
    ./gradlew wasmWasiNodeTest
  • 在 Deno 中测试应用程序:

    bash
    ./gradlew wasmWasiDenoTest
  • 在 WasmEdge 中测试应用程序:

    bash
    ./gradlew wasmWasiWasmEdgeTest

终端会显示测试结果:

Kotlin/Wasm 和 WASI 测试

下一步

在 Kotlin Slack 中加入 Kotlin/Wasm 社区:

加入 Kotlin/Wasm 社区

尝试更多 Kotlin/Wasm 示例: