WebAssembly (abbreviatedWasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
The Wasmstack machine is designed to be encoded in a size- and load-time-efficientbinary format. WebAssembly aims to execute at native speed by taking advantage ofcommon hardware capabilities available on a wide range of platforms.
WebAssembly describes a memory-safe, sandboxedexecution environment that may even be implemented inside existing JavaScript virtual machines. Whenembedded in the web, WebAssembly will enforce the same-origin and permissions security policies of the browser.
WebAssembly is designed to be pretty-printed in atextual format for debugging, testing, experimenting, optimizing, learning, teaching, and writing programs by hand. The textual format will be used whenviewing the source of Wasm modules on the web.
WebAssembly is designed to maintain the versionless, feature-tested, and backwards-compatiblenature of the web. WebAssembly modules will be able to call into and out of the JavaScript context and access browser functionality through the same Web APIs accessible from JavaScript. WebAssembly also supportsnon-web embeddings.