โ๏ธ WebAssembly
Bindings
WebAssembly modules are bound as follows. The bound keys will be instances of WebAssembly.Module:
$ miniflare --wasm MODULE1=module1.wasm --wasm MODULE2=module2.wasmwrangler.toml[wasm_modules]MODULE1 = "module1.wasm"MODULE2 = "module2.wasm"const mf = new Miniflare({ wasmBindings: { MODULE1: "module1.wasm", MODULE2: "module2.wasm", },});You can then use the WebAssembly modules in your workers:
const instance = new WebAssembly.Instance(MODULE1);
addEventListener("fetch", (e) => { // Assuming MODULE1 exports a function `add` summing 2 integer arguments const value = instance.exports.add(1, 2); e.respondWith(new Response(value.toString()));});Modules
You can also import WebAssembly modules by adding a CompiledWasm module rule.
See ๐ Modules for more details. For instance, with the
following wrangler.toml file and worker script, we can achieve the same result
as the previous example:
wrangler.toml[[build.upload.rules]]type = "CompiledWasm"globs = ["**/*.wasm"]import module1 from "./module1.wasm";
const instance = new WebAssembly.Instance(module1);
export default { fetch() { const value = instance.exports.add(1, 2); return new Response(value.toString()); },};Rust Wrangler Builds
When using Rust Wrangler Builds, wasm is
automatically bound to your compiled WebAssembly module.