Cross-platform assembly language and bytecode designed for execution in web browsers
WebAssembly
Paradigm
structured; stack machine[1]
Designed by
W3C
Developer
W3C
Mozilla
Microsoft
Google
Apple
First appeared
March 2017; 5 years ago (2017-03)
OS
Platform independent
License
Apache License 2.0
Filename extensions
.wat (text format)
.wasm (binary format)
Website
webassembly.org
Influenced by
asm.js
PNaCl
WebAssembly (sometimes abbreviated Wasm) defines a portable binary-code format and a corresponding text format for executable programs[2] as well as software interfaces for facilitating interactions between such programs and their host environment.[3][4][5][6]
The main goal of WebAssembly is to enable high-performance applications on web pages, "but it does not make any Web-specific assumptions or provide Web-specific features, so it can be employed in other environments as well."[7] It is an open standard[8][9] and aims to support any language on any operating system,[10] and in practice all of the most popular languages already have at least some level of support.
Announced in 2015 (2015) and first released in March 2017 (2017-03), WebAssembly became a World Wide Web Consortium recommendation on 5 December 2019[11][12][13] and it received the Programming Languages Software Award from ACM SIGPLAN in 2021.[14] The World Wide Web Consortium (W3C) maintains the standard with contributions from Mozilla, Microsoft, Google, Apple, Fastly, Intel, and Red Hat.[15][16]
^"WebAssembly/design/Semantics.md". GitHub. Retrieved 23 February 2021. WebAssembly code can be considered a structured stack machine; a machine where most computations use a stack of values, but control flow is expressed in structured constructs such as blocks, ifs, and loops. In practice, implementations need not maintain an actual value stack, nor actual data structures for control; they need only behave as if they did so.
^Mozilla. "Understanding WebAssembly text format". MDN Web Docs. Retrieved 9 December 2019.
^"Introduction — WebAssembly 1.0". webassembly.github.io. Retrieved 18 June 2019. WebAssembly is an open standard...
^"Introduction — WebAssembly 1.0". webassembly.github.io. Retrieved 18 June 2019. WebAssembly is a ... code format
^"Conventions — WebAssembly 1.0". webassembly.github.io. Retrieved 17 May 2019. WebAssembly is a programming language that has multiple concrete representations (its binary format and the text format). Both map to a common structure.
^"Introduction — WebAssembly 1.0". webassembly.github.io. Retrieved 18 June 2019. ... this specification is complemented by additional documents defining interfaces to specific embedding environments such as the Web. These will each define a WebAssembly application programming interface (API) suitable for a given environment.
^"Introduction — WebAssembly 1.1". webassembly.github.io. Retrieved 19 February 2021. Its main goal is to enable high performance applications on the Web, but it does not make any Web-specific assumptions or provide Web-specific features, so it can be employed in other environments as well.
^Haas, Andreas; Rossberg, Andreas; Schuff, Derek L.; Titzer, Ben L.; Holman, Michael; Gohman, Dan; Wagner, Luke; Zakai, Alon; Bastien, JF (14 June 2017). "Bringing the Web Up to Speed with WebAssembly". SIGPLAN Notices. 52 (6): 185–200. doi:10.1145/3140587.3062363. ISSN 0362-1340. While the Web is the primary motivation for WebAssembly, nothing in its design depends on the Web or a JavaScript environment. It is an open standard specifically designed for embedding in multiple contexts, and we expect that stand-alone implementations will become available in the future.
^Cite error: The named reference :1 was invoked but never defined (see the help page).
^Cite error: The named reference Wasmer was invoked but never defined (see the help page).
^World Wide Web Consortium. "WebAssembly Core Specification". World Wide Web Consortium (W3). Retrieved 9 December 2019.
^Couriol, Bruno. "WebAssembly 1.0 Becomes a W3C Recommendation and the Fourth Language to Run Natively in Browsers". infoq.com. Retrieved 9 December 2019.
^"WebAssembly Specification — WebAssembly 1.1". webassembly.github.io. Retrieved 22 March 2021.
^"Programming Languages Software Award". www.sigplan.org.
^Cite error: The named reference ars was invoked but never defined (see the help page).
^Cite error: The named reference bytecode was invoked but never defined (see the help page).
specify the behaviour of web pages. "Introduction to WebAssembly 1.1". webassembly.github.io. "Behind the scenes of modern web browsers". Tali Garsiel...
source code to WebAssembly (or to a subset of JavaScript known as asm.js, its original compilation target before the advent of WebAssembly in 2017), primarily...
AssemblyScript is a TypeScript-based programming language that is optimized for, and statically compiled to, WebAssembly (currently using asc, the reference...
WebAssembly. It is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices. Since a progressive web...
number of bytes. LEB128 is used in the DWARF debug file format and the WebAssembly binary encoding for all integer literals. LEB128 format is very similar...
Platform (UWP) - based code to run on iOS, macOS, Linux, Android, and WebAssembly. Uno Platform is released under the Apache 2.0 license. Applications...
ECMAScript engine is another name for these engines. With the advent of WebAssembly, some engines can also execute this code in the same sandbox as regular...
[citation needed] LLVM also supports WebAssembly as a target, enabling compiled programs to execute in WebAssembly-enabled environments such as Google...
2017, web browsers have supported WebAssembly, a binary format that enables a JavaScript engine to execute performance-critical portions of web page scripts...
It is implemented with the standard web technologies of HTML, CSS, JavaScript, and WebAssembly. In addition, WebGL enables more sophisticated graphics...
released as a part of .NET Core 3. Blazor WebAssembly: Single-page apps that are downloaded to the client's web browser before running. The size of the...
destaffed. On 30 May 2017, Google announced deprecation of PNaCl in favor of WebAssembly. Although initially Google planned to remove PNaCl in first quarter of...
ships with additional decompilers, including Intel x86, Intel x86-64, WebAssembly (wasm), Ethereum (evm), Diem blockchain (diemvm). JEB 4 was released...
format VoiceXML WAI-ARIA Web Content Accessibility Guidelines WebAssembly, portable binary format and assembly language WebDriver, a platform based on...
languages including C, C++, Java, Julia, Haskell, Rust, OCaml, Python, WebAssembly, and .NET/Mono. The default input format is SMTLIB2. In this example...
a village in Donggala Regency on the island of Sulawesi, Indonesia WebAssembly System Interface Vasi (disambiguation) This disambiguation page lists...