WasmKit 是一个用 Swift 编写的独立且可嵌入的 WebAssembly 运行时实现。
学习如何使用 WasmKit 的最佳方式是查看 Examples 目录。
WasmKit 提供了一个命令行工具来运行符合 WASI 的 WebAssembly 二进制文件。
$ git clone https://github.com/swiftwasm/WasmKit.git
$ cd WasmKit
$ swift run wasmkit-cli run ./Examples/wasm/hello.wasm
Hello, World!
你可以通过将以下内容添加到你的 Package.swift 文件中,来使用 WasmKit 作为 Swift 包管理器 依赖项
dependencies: [
.package(url: "https://github.com/swiftwasm/WasmKit.git", from: "0.1.0"),
],
你可以在 Swift Package Index 上找到 API 文档。
WasmKit 引擎在所有 Swift 支持的主要平台上工作。它在 macOS、Ubuntu 和 Windows 上持续测试,并且应该在以下平台上工作
| 类别 | 特性 | 状态 |
|---|---|---|
| WebAssembly MVP | 解析二进制格式 | ✅ 已实现 |
| 解析文本格式 (WAT) | ✅ 已实现 | |
| 执行 | ✅ 已实现 | |
| 验证 | ✅ 已实现 | |
| WebAssembly 提案 | 引用类型 | ✅ 已实现 |
| 批量内存操作 | ✅ 已实现 | |
| 可变全局变量 | ✅ 已实现 | |
| 符号扩展运算符 | ✅ 已实现 | |
| 非陷入浮点到整数转换 | ✅ 已实现 | |
| Memory64 | ✅ 已实现 | |
| 尾调用 | ✅ 已实现 | |
| 线程和原子操作 | 🚧 解析器已实现 | |
| WASI | WASI Preview 1 | ✅ 已实现 |
WasmKit 的最低支持 Swift 版本是 5.8,这是在 ci.swift.org 中用于引导 Swift 工具链的版本。
要运行 WasmKit 测试套件,你需要先检出测试套件存储库。
# Checkout test suite repositories
$ ./Vendor/checkout-dependency
# Run tests
$ swift test
这个项目最初由 @akkyie 开发,现在由社区维护。
在 2020 年配备 Swift 5.10 的 Mac mini (M1, 16GB RAM) 上。通过 swift package resolve && swift package clean && time swift build --product PrintAdd 测量。 ↩