SwiftWebAssembly GitHub 许可证 GitHub 发布版本 Carthage 兼容 SwiftPM 兼容

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
})

集成

Swift Package Manager

可以通过 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"])
    ]
)

Carthage

将 SwiftWebAssembly 添加到您的 Cartfile 中。