Abstract
This workshop will teach how to port Rust libraries in JavaScript runtimes with WebAssembly (WASM), without performance penalties and with a single compilation step for any system. No previous experience with WebAssembly is needed.
You will learn how to smoothly integrate WASM into your Node.js application, while also automatically generating idiomatic TypeScript definitions. And while WASM looks like a clear winner thanks to its portability, it's not a silver bullet. That's why we will experience and solve typical WASM data serialization issues, addressing limitations and escape hatches. Essential topics, such as the differences between errors or panics in WASM vs plain Rust, are also included. Scared that the generated WASM artifact will be too large/slow? We've got you covered.
Finally, we will present some lesser-known tricks to let WebAssembly interact with the outside world without resorting to WASI.
Together, we will incrementally build a JS-compatible Rust library with WebAssembly, and demo it live. After this workshop, you will be able to build on top of your Rust knowledge to create efficient and reliable libraries to power the next generation of web development.