Support Matrix
Caution
WASM Threading is not standized. Rust and
wasm-bindgenfrequently change theRUSTFLAGSneeded to compile with threading support enabled. If you cannot build with the example.cargo/config.tomlin this guide, please open an issue on GitHub.See the source-of-truth for cargo configs Here
Note
This page is last updated on:
2026-08-23
Toolchain minimum versions
- Rust:
Nightly 2026-05-06(latest tested1.100.0-nightly)- Nightly toolchain is required
- Wasm-bindgen:
>=0.2.127 - Wasm-pack:
masterNote
The current latest stable version
0.15.0, has a version ofbinaryenover 2 years old. The master branch contains a new version required to parse some syntax in the DeadCodeElimination pass.You can install
wasm-packfrom GitHub directly withcargo install wasm-pack --git https://github.com/wasm-bindgen/wasm-pack --branch master
Engine minimum versions
The JS engine must support the Exception Handling with exnref and Threading WASM features. See WebAssembly Feature Status for the most up-to-date version matrix.
The test suite in this project runs all examples on Google Chrome, Microsoft Edge, Firefox, Webkit, NodeJS v24, NodeJS v26, Deno and Bun. You can use the Playground to run the examples with your current browser.
- Chromium
>=151.0 - Firefox
>=153.0 - Webkit
>=revision 2092 - NodeJS
>=24.15(latest tested24.19.0)- Earlier versions may work through the
--experimental-wasm-exnrefflag
- Earlier versions may work through the
- Deno
>=2.3.2(latest tested2.9.5)- *Note that Deno has an issue it takes ~5x longer to spin up a worker compared to other engines.
- Bun
>=1.3.14(latest tested1.4.0)- *Note that Bun has an issue where it sometimes segfaults when trying to glow WASM memory.
Warning
Even though technically the versions can be relaxed if you do not use
panic=unwind(meaning you do not need support for Exception Handling with exnref), the test suite only runs for the versions indicated above. Lower engine versions are not guaranteed to work since there can be subtle bugs or behavior differences in the APIs that we depend on.
wasm-pack Target Support
| Target\Engine | Chromium1 | Firefox1 | Webkit1 | NodeJS2 | Deno3 | Bun2 |
|---|---|---|---|---|---|---|
no-modules | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
web | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
nodejs4,7 | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ |
deno4,5 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
bundler4,5,6 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Notes:
- 1: Browsers use
WebWorkerAPI - 2: NodeJS and Bun use
node:worker_threadsAPI - 3: Deno uses
WorkerAPI because there were issues withnode:worker_threadsin the test harness setup. However this might change in the future if the test harness can workaround this issue. - 4: Targets other than
no-modulesandwebare supported, but you have to also generate the bindgen script for eitherno-modulesorweb. See Setup Guide for more details. - 5: Additional setup is needed because
bundleranddenotarget does not support thewasm_bindgen::module()API. See Setup Guide for more details. - 6: None of the engines can natively import the package generated by the
bundlertarget. The test suite usesvitewith thevite-plugin-wasmplugin. - 7: The
nodejstarget generates CommonJS and is not recommended if your project is modern and uses ESM. You either need to rename the generated script to.cjsextension or remove"type": "module"frompackage.json, which may have additional consequences.