WebAssembly is the Assembly Language of the Web. Its level of abstraction is similar to native assembly languages, but it targets an abstract stack-based virtual machine. While primarily intended as a compilation target for higher level languages, WebAssembly's textual representation can be written by hand. Such *.wat files frequently use S-Expressions, giving them a LISP-like appearance.
Elevate your WebAssembly skills through 87 curated exercises across 0 core concepts. Master problem-solving with a structured learning path designed for modern developers.
WebAssembly is a binary instruction format for a stack-based virtual machine. It is a W3C standard that ships in all major browsers and features streaming compilation and convenient interoperability with JavaScript. Most compiled languages can now generate WebAssembly binaries, enabling client-side execution of languages other than JavaScript. Additionally, many server-side runtimes and cloud services execute WebAssembly, many of which support the emerging WebAssembly Systems Interface (WASI).
The focus of this track is on writing WebAssembly Text Format (*.wat) files by hand in order to gain familiarity with the virtual machine, Instruction Set Architecture, and module abstraction provided by the core specification. While most production deployments of WebAssembly are compiled from higher-level languages, many developers depend on relatively heavy-weight frameworks that abstract away the WebAssembly virtual machine via heavyweight JavaScript glue code and generate relatively large, multi-megabyte binaries that result in slower startup-times. A deeper understanding of WebAssembly enables the creation of smaller modules and gives you total control over how your module interacts with the surrounding host environment. You might be surprised what can be accomplished with a few kilobytes of WebAssembly written by hand!
Simple Syntax
Simpler than native assembly languages, offering a good onramp to systems programming.
Fast
Optimized for fast (just-in-time) compilation to native code and raw execution speed.
Cross-platform
Libraries reuse across languages and ecosystems. Executables run on desktops and servers.
Designed by a committee
A vendor-neutral W3C standard with numerous contributors from research labs and industry.
Ever-evolving
While a core MVP is production-ready, numerous proposals will expand WebAssembly in the future.
JavaScript Interopability
WebAssembly is a first-class citizen of the web with excellent interoperability with JavaScript.
Simple Syntax
Simpler than native assembly languages, offering a good onramp to systems programming.
Fast
Optimized for fast (just-in-time) compilation to native code and raw execution speed.
Cross-platform
Libraries reuse across languages and ecosystems. Executables run on desktops and servers.
Designed by a committee
A vendor-neutral W3C standard with numerous contributors from research labs and industry.
Ever-evolving
While a core MVP is production-ready, numerous proposals will expand WebAssembly in the future.
JavaScript Interopability
WebAssembly is a first-class citizen of the web with excellent interoperability with JavaScript.