WebAssembly in Production: A Compiler in a Web Page • Brian Carroll • GOTO 2023

Brian Carroll

Discover the power of WebAssembly in production, exploring its limitations and workarounds, from compilation to runtime optimization, and innovative applications like Web REPL and static sites.

Key takeaways
  • WebAssembly is a binary format that can be run in a browser, but it has its own limitations, such as only being able to understand numbers.
  • WebAssembly can’t modify the HTML page or understand JavaScript objects, but it can be used to create a WebAssembly instance that contains WebAssembly functions.
  • To overcome these limitations, you need to use JavaScript to interact with the WebAssembly instance and modify the HTML page.
  • To achieve this, you can use JavaScript callbacks to communicate between the JavaScript and WebAssembly worlds.
  • WebAssembly can be compiled from source code, but it also has its own optimization tools to minimize the binary size.
  • The WebAssembly instance has its own memory, which can be accessed from JavaScript using a pointer and length.
  • WebAssembly can be used to create a Web REPL, allowing users to interact with the code as they type it in.
  • To create a Web REPL, you need to create a JavaScript application that calls into some WebAssembly, and the execution output needs to be displayed in the browser.
  • The WebAssembly instance is responsible for evaluating the code, and the JavaScript application is responsible for receiving the output and displaying it in the browser.
  • To optimize the compilation process, you can use just-in-time compilation for JavaScript and use WebAssembly’s optimization tools to minimize the binary size.
  • WebAssembly can be used to create a static site, without the need for a backend server.