Practical Polyglot WebAssembly
summary
Explains using WebAssembly’s module linking, interface types and the canonical API to run JavaScript and Rust modules together with dynamic linking instead of static bundling. Shows tooling: javy/QuickJS, SpiderMonkey experiments, wit-bindgen, wasm-link modifications and wasmtime host glue. Gives concrete constraints (5 ms execution limit, 256 KB target binary) and measured results: static build ~2.2 MB, 323 µs vs dynamic composition 900 KB, 160 µs — ~50% savings.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 0:24Polyglot WebAssembly defined
- 1:49Shopify’s WebAssembly work
- 4:37WebAssembly primer
- 8:51Constraints for untrusted code
- 13:03Component model pillars
- 14:52Static vs dynamic linking
- 17:42Rust date library
- 20:07JavaScript consumer module
- 24:24Adapting module calls
- 25:47Refactoring wasm-link
- 27:10Host API setup
- 28:58Benchmarking results
- 30:43Polyglot challenges
- 32:29Summary
related talks
23mWebAssembly for the rest of us
44mJavaScript in WebAssembly? Why and How
17mA case for Web Assembly
16mWhy WebAssembly
53mWebAssembly – To the browser and beyond!
46mA State Of WebAssembly - The Browser is now a real VM
40mWebAssembly for Web Developers
28mJavy: Creating a toolchain for running JavaScript on WebAssembly
