Don't Trust Anything! Real-world Uses For WebAssembly • Katie Bell • YOW! 2023

Explore real-world applications of WebAssembly, including sandboxing untrusted code, improving performance, and enhancing security, with LiveOverflow's rundown of benefits and limitations.

Key takeaways
  • WebAssembly (WASM) is not designed to run fully featured languages, but can read a single file and write nothing.
  • WASI (WebAssembly System Interface) is used to sandbox WebAssembly code and implement it in a secure way.
  • Sandboxing WebAssembly code is a good idea because it can be used to run untrusted code on the same machine as trusted code.
  • WASM time API is changing and has limited support across different languages.
  • Running untrusted code in the same process as trusted code is risky and can lead to security issues.
  • Using WebAssembly to sandbox code can limit the memory and file system access of the code.
  • Cloudflare uses WebAssembly to sandbox code and has seen a 10x improvement in performance.
  • Shopify uses WebAssembly to sandbox code and has seen a 5x improvement in performance.
  • WebAssembly is limited in what it can do, but can be used to run small pieces of code that need to be executed quickly.
  • Using WebAssembly to sandbox code can reduce the attack surface and improve security.
  • There are several tools available for working with WebAssembly, including Wazzy, Firecracker, and Kata containers.
  • WebAssembly is not a language, but a compile target, and is not designed to be written by hand.
  • Using WebAssembly to sandbox code can improve performance and security, but requires careful consideration of the tradeoffs.