of its specs are around browser use. Features are acceptable if used by at least two browsers. Its virtual stack machine and bytecode formats are used outside the browser. 6
with instructions similar to real hardware. Common hardware are register machines, not stack machines, and their assembly code is architecture specific. 7
• Wasm is bytecode, not a package or image format • WebAssembly is a compile target for a possibly constrained language • WebAssembly has no standard library programming WebAssembly is different
via shared memory, globals and functions 9 • no capabilities besides number crunching, more more is often needed • WASI are function imports for I/O, time, random numbers, ENV, etc • When acting like an entrypoint, it is using WASI WebAssembly is a coprocessor
bias. Ex field instructions • Other languages share object model, GC, stdlib • W3C Working Group • Dominates the browser • Hardware bias. Ex SIMD instructions • Other languages bring their own object model, GC, stlib Virtual Stack Machines
is more constrained than a natural language. What do you do about it? • Does this allow you to extend otherwise tricky IP? • Do you know what’s happening inside the Wasm? 15
Mesh and FaaS already use wasm, so you can practice • Many projects use an SDK approach to enable success • WebAssembly has a dynamic Spec and vibrant OSS Closing thoughts