Das W3C hat WebAssembly den Status eines empfohlenen Standards verliehen.

Konsortium W3C gab bekannt zur GewĂ€hrung des Status einer empfohlenen Norm fĂŒr die WebAssembly-Technologie. WebAssembly bietet browserunabhĂ€ngigen, universellen Low-Level-Bytecode zur AusfĂŒhrung von Anwendungen, die aus verschiedenen Programmiersprachen kompiliert wurden. WebAssembly wird als eine vielversprechendere und zwischen Browsern portierbare Technologie zur Erstellung hochleistungsfĂ€higer Webanwendungen positioniert. WebAssembly kann zur Lösung von Aufgaben verwendet werden, die hohe Leistung erfordern, beispielsweise Video-Codierung, Audiobearbeitung, Grafik- und 3D-Manipulation, Spieleentwicklung, kryptografische Operationen, mathematische Berechnungen und die Erstellung portabler Umsetzungen von Programmiersprachen.

WebAssembly Ă€hnelt in vielerlei Hinsicht Asm.js, unterscheidet sich jedoch darin, dass es ein binĂ€res Format ist, das nicht an JavaScript gebunden ist. In WebAssembly ist kein Garbage Collector erforderlich, da die Speicherverwaltung explizit erfolgt. Dank Einsatz von JIT fĂŒr WebAssembly kann eine nahezu native Leistung erreicht werden. Zu den Hauptaufgaben von WebAssembly zĂ€hlen die GewĂ€hrleistung von PortabilitĂ€t, Vorhersehbarkeit des Verhaltens und IdentitĂ€t der CodeausfĂŒhrung auf verschiedenen Plattformen. In letzter Zeit wird WebAssembly auch vorangetrieben als universelle Plattform fĂŒr die sichere AusfĂŒhrung von Code in beliebigen Infrastrukturen, Betriebssystemen und GerĂ€ten, nicht nur auf Browser beschrĂ€nkt.

W3C hat drei Spezifikationen standardisiert, die mit WebAssembly zusammenhÀngen:

  • WebAssembly Core – beschreibt die Low-Level-virtuelle Maschine zur AusfĂŒhrung von WebAssembly-Bytecode. Mit WebAssembly verbundene Ressourcen werden im „.wasm“-Format bereitgestellt, das an die „.class“-Datei in Java erinnert und statische Daten sowie Code-Segmente zur Verarbeitung dieser Daten enthĂ€lt.
  • WebAssembly Web API – definiert ein Programmierschnittstelle auf der Grundlage des Promise-Mechanismus zum Anfordern und AusfĂŒhren von „.wasm“-Ressourcen. Das Format der WebAssembly-Ressourcen ist so optimiert, dass die AusfĂŒhrung beginnen kann, ohne auf das vollstĂ€ndige Laden der Datei zu warten, was die ReaktionsfĂ€higkeit von Webanwendungen erhöht.
  • WebAssembly JavaScript Interface — stellt eine API fĂŒr die Integration mit JavaScript zur VerfĂŒgung. Ermöglicht es, Werte zu erhalten und Parameter an WebAssembly-Funktionen zu ĂŒbergeben. Die AusfĂŒhrung von WebAssembly entspricht dem Sicherheitsmodell von JavaScript, und alle Interaktionen mit dem zugrunde liegenden System erfolgen analog zur AusfĂŒhrung von JavaScript-Code.

In Zukunft ist geplant, Spezifikationen fĂŒr solche Möglichkeiten von WebAssembly zu erstellen wie:

  • Multithreading mit gemeinsam genutztem Speicher und atomarem Zugriff auf den Speicher;
  • Vektoroperationen auf Basis von SIMD, die eine Parallelisierung der SchleifenausfĂŒhrung ermöglichen;
  • Referenztypen fĂŒr direkte Referenzen auf Objekte aus WebAssembly-Code;
  • Die Möglichkeit, Funktionen ohne zusĂ€tzlichen Speicherplatzverbrauch im Stack aufzurufen;
  • Integration mit ECMAScript-Modulen — die Möglichkeit, WebAssembly-Code aus JavaScript als Module zu laden, die der Spezifikation von ECMAScript 6 entsprechen;
  • Betriebsmodus mit Garbage Collector;
  • Debugging-Schnittstellen;
  • WASI (WebAssembly System Interface) — API fĂŒr die direkte Interaktion mit dem Betriebssystem (POSIX-API fĂŒr die Arbeit mit Dateien, Sockets usw.).

    Quelle: opennet.ru

60GB SSD 8Gb DDR4