6.2.3.3 Kotlin/Wasm 与 WASI 入门
2 分钟阅读
6.2.3.3 Kotlin/Wasm 与 WASI 入门
Beta
本教程演示如何使用 WebAssembly 系统接口 (WASI) 在各种 WebAssembly 虚拟机中运行一个简单的 Kotlin/Wasm 应用。
你可以找到应用在 Node.js、Wasmtime Deno 和 WasmEdge 虚拟机上运行的示例。输出是一个使用标准 WASI API 的简单应用。
目前,Kotlin/Wasm 支持 WASI 0.1,也称为 Preview 1。对 WASI 0.2 的支持计划在未来的版本中提供。关注这个 YouTrack 问题以了解 WASI 0.2 支持的进展。
wasmWasi 目标默认使用新的异常处理提案,从而确保与现代 WebAssembly 运行时更好地兼容。
提示: Kotlin/Wasm 工具链开箱即用地提供了 Node.js 任务(
wasmWasiNode*)和 Wasmtime 任务(wasmWasiWasmtime*)。项目中的其他任务变体(例如使用 Deno 或 WasmEdge 的任务)是以自定义任务的形式提供的。
开始之前
下载并安装最新版本的 IntelliJ IDEA。
在 IntelliJ IDEA 中选择 File | New | Project from Version Control,克隆 Kotlin/Wasm WASI 模板仓库。
你也可以从命令行克隆它:
| |
运行应用
- 通过选择 View | Tool Windows | Gradle 打开 Gradle 工具窗口。
项目加载后,你可以在 Gradle 工具窗口中的 kotlin-wasm-wasi-example 下找到这些 Gradle 任务。
注意: 你需要至少 Java 11 作为 Gradle JVM,任务才能成功加载。
- 从 kotlin-wasm-wasi-example | Tasks | kotlin node 中选择并运行以下 Gradle 任务之一:
- wasmWasiNodeDevelopmentRun 在 Node.js 中运行应用。
- wasmWasiWasmtimeDevelopmentRun 在 Wasmtime 中运行应用。
- wasmWasiDenoDevelopmentRun 在 Deno 中运行应用。
- wasmWasiWasmEdgeDevelopmentRun 在 WasmEdge 中运行应用。
提示: 在 Windows 平台上使用 Deno 时,请确保已安装
deno.exe。更多信息请参阅 Deno 的安装文档。

或者,在 kotlin-wasm-wasi-template 根目录下于终端中运行以下命令之一:
- 在 Node.js 中运行应用:
| |
- 在 Wasmtime 中运行应用:
| |
- 在 Deno 中运行应用:
| |
- 在 WasmEdge 中运行应用:
| |
应用构建成功时,终端会显示一条消息:

测试应用
你也可以测试 Kotlin/Wasm 应用在各种虚拟机上是否正常工作。
在 Gradle 工具窗口中,从 kotlin-wasm-wasi-example | Tasks | verification 运行以下 Gradle 任务之一:
- wasmWasiNodeTest 在 Node.js 中测试应用。
- wasmWasiWasmtimeTest 在 Wasmtime 中测试应用。
- wasmWasiDenoTest 在 Deno 中测试应用。
- wasmWasiWasmEdgeTest 在 WasmEdge 中测试应用。

或者,在 kotlin-wasm-wasi-template 根目录下于终端中运行以下命令之一:
- 在 Node.js 中测试应用:
| |
- 在 Wasmtime 中测试应用:
| |
- 在 Deno 中测试应用:
| |
- 在 WasmEdge 中测试应用:
| |
接下来学什么?
在 Kotlin Slack 中加入 Kotlin/Wasm 社区:
尝试更多 Kotlin/Wasm 示例: