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
测量。 ↩