Many people are excited about WebAssembly. However, as with any budding ecosystem, one can encounter roadblocks when trying to do seemingly simple things. This is especially true in the server-side Wasm space, where tooling is under active development as current approaches evolve. An early head-scratcher for many, even after compiling a first Wasm module is “…but how do I get data in, and out, of a WebAssembly module?”
Once you peek behind the curtain, you’ll find there are many options for this – wasm-bindgen, wit-bindgen, polyglot, gRPC, JSON, and more – though you may be confused as to why there is so much variety. You may also notice what appear to be limitations: Wasm primitives being only numbers, single returns, etc. Finally, what about WASI, the WebAssembly System Interface? How easy is it to get data with a network connection? From a file on the host?
This talk will cover all of these available options, the strengths, similarities, differences and – most importantly – their usage, so that you will have a confident understanding of the landscape when you begin your next WebAssembly project.
Dan Phillips
Loophole Labs
Daniel Phillips is a Senior Engineer at Loophole Labs, where one of his main areas of focus is server-side WebAssembly. He is also the founder and organizer of the WebAssembly Chicago group.