A package which provides transformation operation for WebAssembly binary. Inspired by Rust implementation
Available transformations
lowerI64Imports
public func lowerI64Imports(_ input: [UInt8]) throws -> [UInt8]
Inserts trampoline functions for imports that have i64 params or returns. This is useful for running Wasm modules in browsers that do not support JavaScript BigInt -> Wasm i64 integration. Especially in the case for i64 WASI Imports.
stripCustomSections
public func stripCustomSections(_ input: [UInt8]) throws -> [UInt8]
Strip all custom sections from input WebAssembly binary.
Testing
Set environment variable SWIFT_TOOLCHAIN to the path to your SwiftWasm toolchain.
e.g. $HOME/Library/Developer/Toolchains/swift-wasm-5.7.3-RELEASE.xctoolchain/usr
Set up testing fixtures by: (cd ./Fixtures/ && npm install && npm run build && make all)
WasmTransformer
A package which provides transformation operation for WebAssembly binary. Inspired by Rust implementation
Available transformations
lowerI64Imports
Inserts trampoline functions for imports that have i64 params or returns. This is useful for running Wasm modules in browsers that do not support JavaScript BigInt -> Wasm i64 integration. Especially in the case for i64 WASI Imports.
stripCustomSections
Strip all custom sections from input WebAssembly binary.
Testing
SWIFT_TOOLCHAIN
to the path to your SwiftWasm toolchain. e.g.$HOME/Library/Developer/Toolchains/swift-wasm-5.7.3-RELEASE.xctoolchain/usr
(cd ./Fixtures/ && npm install && npm run build && make all)
swift test