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