WebAssembly (WASM)

Eintrag zuletzt aktualisiert am: 30.09.2020

WebAssembly (WASM) ist ein Bytecode und eine zugehörige Laufzeitumgebung zur Ausführung in Webbrowsern als Alternative zu JavaScript. WASM wird beim World Wide Web Consortiuum (W3C) standardisiert [www.w3.org/TR/wasm-core] und hat seit dem 1. Oktober 2019 den Status "Proposed Recommendation".

WASM ist nicht als Ersatz, sondern als Ergänzung zu JavaScript entwickelt worden, um komplexere Berechnungen performanter mit einer Low-Level-Sprache ausführen zu können. In WASM ist zwar eine Interoperabilität zu JavaScript vorgesehen, d.h. JavaScript kann WASM-Code aufrufen und umgekehrt, aber WASM hat im Standard keinen Zugriff auf das Document Object Model (DOM) des Browsers. WASM unterliegt wie JavaScript der Sandbox des Webbrowsers.

Die Bytecode Alliance [https://bytecodealliance.org/] mit Mozilla, Fastly, Intel und RedHat ist angetreten, Webassembly auch außerhalb des Webbrowsers auf allen Plattformen und Geräten anzubieten. Webassembly-basierte Anwendungen könnten also eines Tages direkt auf kleinen und großen Geräten laufen.

Viele moderne Webbrowser haben WASM schon seit längerem implementiert: Firefox (ab Version 58), Chrome (ab Version 63), Edge (ab Version 16), Opera (seit Version 57) und Safari (ab Version 11.2) vgl. https://caniuse.com/#feat=wasm. Nicht verfügbar ist WASM für den Internet Explorer. Ursprünglich war geplant, im Internet Explorer über asm.js [http://asmjs.org/] WebAssembly zu emulieren. Dieses Features wurde jedoch wieder entfernt [https://github.com/aspnet/Blazor/commit/4006cd543900fcc1cf76cd75a1b24007e60c8a67].

Http://webassembly.org/
https://www.w3.org/community/webassembly/

Orginalzitat

"WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications." [http://webassembly.org/]

Eigenschaften