You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
WasmInterpreter is a small Swift wrapper around CWasm3, which packages wasm3 inside of a Swift package while adding a few minor conveniences on top. The overriding goal of WasmInterpreter is to provide a clean, Swift-y interface to wasm3.
The core class inside of WasmInterpreter is, naturally, WasmInterpreter. This class is initialized with a stack size (default: 512 KB) and a Wasm module. WasmInterpreter takes care of initializing the WebAssembly environment, runtime, and module, and exposes a clean interface for calling Wasm functions, importing native functions into Wasm modules, and extracting data from the runtime's heap. You can find examples for all of these things by looking at the tests.
Installation
To use WasmInterpreter with the Swift Package Manager, add a dependency to your Package.swift file:
Can't build tests with 'ld: Could not open or create -dependency_info file' error
The Address Sanitizer can't be run when linking against SynchronizedDynamic—the dynamic library version of Synchronized. So, either change WasmInterpreter to use Synchronized or disable the Address Sanitizer.
License
The license for WasmInterpreter is the standard MIT license. You can find it in the LICENSE file.