Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why should I care about WebAssembly

Why should I care about WebAssembly

GlueCon 2022 keynote on WebAssembly

Adrian Cole

May 18, 2022

More Decks by Adrian Cole

Other Decks in Technology


  1. WebAssembly in the browser is controlled by javascript 2 javascript

    html css webassembly VM module module WebAssembly is JavaScript’s buddy code in another language!
  2. WebAssembly’s core specification is usable outside the browser 3 golang

    runtime module WebAssembly can be your buddy, too! code in another language! WASI module wazero.io
  3. WebAssembly is often an implementation detail of plugins 4 thing

    binary Using WebAssembly might look more like this.. plugin code in another language! plugin.wasm thing yaml thing SDK
  4. WebAssembly is Web Biased WebAssembly is a Web standard. Two

    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
  5. WebAssembly is not Assembly WebAssembly defines a virtual stack machine

    with instructions similar to real hardware. Common hardware are register machines, not stack machines, and their assembly code is architecture specific. 7
  6. A WebAssembly Module is a library or quasi executable 8

    • 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
  7. WebAssembly is a sandbox, architecture that cooperates with its host

    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
  8. 11 • Oracle JCP • Dominates the backend • Language

    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
  9. 12 • Images built with Dockerfile instructions • OS-layer host

    • containers shouldn’t see their host • Binaries built by language compiler • Application-layer host • wasm often use host hooks Sandboxes
  10. Serverless, Service Mesh, Event Driven • Wasm decentralizes language choices

    • Extend your service mesh control and data plane • Is fast start a game changer? 14
  11. Developer tools, Delivery, Observability & Monitoring • Programming in WebAssembly

    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
  12. • Can you now share model code between frontend and

    backend? • Can hosting 3rd party wasm obviate remote calls? • Host functions and cooperation can create coupling DevOps and Production 16
  13. There’s somewhere to start your journey in WebAssembly 17 •

    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