Look who's talking!
Rust and WebAssembly threads on production: a field report
WebContainers is a Node.js-like runtime that runs entirely within your browser. Their development combines low-level hacking in (multithreaded) Wasm with a focus on delivering a reliable, functional platform. Let’s talk about how we built them, what we tried, what worked and what is yet to work!
WebAssembly threads unlock a game-changing primitive for the Web and other targets. Workloads that require shared memory and parallelization can finally leverage the full power of the underlying platform. A much wanted addition to the spec that is now on its path to stabilization.
Though this addition has been cooking as an experimental proposal for some time, that did not stop my team from exploiting its possibilities! We shipped WebContainers, a Node.js-like runtime that runs on your browser, years ago. The core of this engine and its performance characteristics are only possible thanks to threads, and to the versatility of the Rust ecosystem.
In this talk, I’ll give you an overview of this new specification and how toolchains support it, how our use case is unique, and the bumps that we found along the road to production: what we’ve tried, what worked and didn’t work - and what is yet to work!