You would have to try hard to avoid hearing about WebAssembly/WASM. Hardly a day goes by without another article popping up.
I’ve been curious about the tech behind WASM, but not being a web-frontend guy was only casually/passively interested. WASI changes that by embracing WASM outside the browser; another contender for the “write once, run anywhere” panacea.
- Languages without runtimes are the best candidates for WASM (i.e. C/C++/Rust)
Perhaps subjective, but palatable with the right colored glasses (unless you’re a diehard C/C++ enthusiast). Are Rust and WASM the solution to all your problems? Probably not, but we can be interested in the tech regardless.
Rather than write a verbose treatise on WASM basics (of which there are many), thought I’d round up various resources and notes/browser tabs I’ve got hanging around.
Introduction to WASM:
WASI- WASM outside the browser:
- Rust WASM working group and docs.
- Runtimes: wasmtime, Lucet, and wasmer (all built with cranelift). cervus Linux user-mode.
- web-sys: Rust bindings to browser APIs. Auto-generated from WebIDL.
- Multithreading Rust and Wasm
- Memory in WebAssembly (and why it’s safer than you think). Just check out the Mozilla blog there’s other interesting stuff there, no need to individually link it all.