WebAssembly (abbreviated _Wasm_) 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.
Developer reference documentation for Wasm can be found on [MDN's WebAssembly pages](https://developer.mozilla.org/en-US/docs/WebAssembly). The open standards for WebAssembly are developed in a [W3C Community Group](https://www.w3.org/community/webassembly/) (that includes representatives from all major browsers) as well as a [W3C Working Group](https://www.w3.org/wasm/).
### Efficient and fast
The Wasm [stack machine](https://webassembly.github.io/spec/core/exec/index.html) is designed to be encoded in a size- and load-time-efficient [binary format](https://webassembly.github.io/spec/core/binary/index.html). WebAssembly aims to execute at native speed by taking advantage of [common hardware capabilities](/docs/portability/#assumptions-for-efficient-execution) available on a wide range of platforms.
### Safe
WebAssembly describes a memory-safe, sandboxed [execution environment](https://webassembly.github.io/spec/core/exec/index.html#linear-memory) that may even be implemented inside existing JavaScript virtual machines. When [embedded in the web](/docs/web/), WebAssembly will enforce the same-origin and permissions security policies of the browser.
### Open and debuggable
WebAssembly is designed to be pretty-printed in a [textual format](https://webassembly.github.io/spec/core/text/index.html) for debugging, testing, experimenting, optimizing, learning, teaching, and writing programs by hand. The textual format will be used when [viewing the source](/docs/faq/#will-webassembly-support-view-source-on-the-web) of Wasm modules on the web.
### Part of the open web platform
WebAssembly is designed to maintain the versionless, feature-tested, and backwards-compatible [nature of the web](/docs/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 supports [non-web](/docs/non-web/) embeddings.