Session

Look who's talking!

Detail illustration WASM I/O Detail illustration WASM I/O
Rajiv Ranjan Singh
blend-mode
Achille Roussel
blend-mode

Empowering Go with WebAssembly System Interface (WASI) Unleashed

Rajiv Ranjan Singh - A.P. Moller - Maersk / Achille Roussel - Stealth Rocket

Slides

Discover the future of cloud-native development with Go and the WebAssembly System Interface (WASI). Join our session to explore the power of Go’s new WASI support. Learn how to compile once and run anywhere, unlocking limitless possibilities for portable, secure, and high-performance applications.

The WebAssembly System Interface (WASI) is gaining popularity as a compile-once-run-anywhere target for developers of cloud-native applications. WASI is a system interface that provides a standardized way for WebAssembly modules to interact with the underlying system, regardless of the specific operating system or architecture.

WASI greatly improved interoperability in the WebAssembly ecosystem. Still, its use cases have been focused on basic OS integration, such as reading environment variables or interacting with file systems.

Go 1.21 added a new port named wasip1 (short for WASI preview 1), enabling Go developers to target server-side WebAssembly runtimes implementing WASI, such as Wasmtime, WasmEdge, or Wazero. Along with this addition to the Go toolchain, solutions have also emerged in the ecosystem, bringing full networking capabilities to Go applications compiled to WebAssembly.

This session starts with an introduction to the WebAssembly System Interface and an overview of the support for WASI in the Go toolchain, illustrated by live code examples, and dives into how applications can leverage WASI and networking extensions to build powerful WebAssembly applications with Go.

This talk gives attendees a comprehensive understanding of building and running Go applications with the WebAssembly System Interface (WASI).

View all sessions