SwiftWebAssembly 的唯一目的是加载 WebAssembly 编译模块,并将它们暴露给 Swift。
import SwiftWebAssembly
import JavaScriptCore
let context = JSContext()
let file = URL(fileURLWithPath: "example.wasm")
let data = try! Data(contentsOf: file)
context.loadWebAssemblyModule(data: data, success: { exports in
let result = exports?["add"]?.call(withArguments: [1, 2])
print("result: \(result)") // result: 3
})
可以通过 SwiftPM 安装此软件包。
.package(url: "git@github.com:therealbnut/SwiftWebAssembly.git", from: "0.2.0"),
更完整的示例
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "MyPackage",
products: [
.library(name: "MyProduct", targets: ["MyTarget"]),
],
dependencies: [
.package(url: "git@github.com:therealbnut/SwiftWebAssembly.git", from: "0.2.0"),
],
targets: [
.target(name: "MyTarget", dependencies: ["SwiftWebAssembly"])
]
)
将 SwiftWebAssembly 添加到您的 Cartfile 中。