Efficient and fast: The wasm stack machine is designed to be encoded in a size- and load-time-efficient binary format. WebAssembly aims to execute at native speed by taking advantage of common hardware capabilities available on a wide range of platforms.
Open and debuggable: WebAssembly is designed to be pretty-printed in a textual format for debugging, testing, experimenting, optimizing, learning, teaching, and writing programs by hand. The textual format will be used when viewing the source of wasm modules on the web.
|MVP||Soon after MVP||Future versions|
|asm.js functional parity||threads||finer-grained memory control|
|validation semantics||shared memory||large page support|
|execution semantics||dynamic linking||more expressive control flow|
|module semantics||zero-cost exceptions||GC/DOM integration|
|binary encoding||fixed-width SIMD||linear memory >4GiB|
|textual format||... and more|
|polyfill-able in JS|
The actual WebAssembly specification is being developed in the spec repository. For now, high-level design discussions should continue to be held in the design repository, via issues and pull requests, so that the spec work can remain focused.
The WebAssembly waterfall builds, executes, and archives different components of the WebAssembly project, enabling end-to-end integration tests of LLVM compilation and execution in d8 and the Binaryen interpreter.
When contributing, please follow our Code of Ethics and Professional Conduct.