WasmKit Icon

WasmKit

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!

作为库

Swift 包管理器

你可以通过将以下内容添加到你的 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 ✅ 已实现

最低支持的 Swift 版本

WasmKit 的最低支持 Swift 版本是 5.8,这是在 ci.swift.org 中用于引导 Swift 工具链的版本。

测试

要运行 WasmKit 测试套件,你需要先检出测试套件存储库。

# Checkout test suite repositories
$ ./Vendor/checkout-dependency
# Run tests
$ swift test

致谢

这个项目最初由 @akkyie 开发,现在由社区维护。

脚注

  1. 在 2020 年配备 Swift 5.10 的 Mac mini (M1, 16GB RAM) 上。通过 swift package resolve && swift package clean && time swift build --product PrintAdd 测量。