W3C Konzorcium a WebAssembly technológia ajánlott szabvány státuszának megadásáról. A WebAssembly böngészőfüggetlen, univerzális alacsony szintű köztes kódot biztosít különböző programozási nyelvekből fordított alkalmazások futtatására. A WebAssembly olyan technológiaként pozicionálódik, amely ígéretesebb és hordozhatóbb a böngészők közötti magas teljesítményű webalkalmazások létrehozása terén. A WebAssembly alkalmazható olyan feladatok megoldására, amelyek nagy teljesítményt igényelnek, például videókódolás, hangszerkesztés, grafikai és 3D manipulációk, játékfejlesztés, kriptográfiai műveletek, matematikai számítások és hordozható programozási nyelvek megvalósításának létrehozása.
A WebAssembly lényegében hasonlít az Asm.js-re, de eltér azzal, hogy egy bináris formátum, amely nem fűződik a JavaScript-hez. A WebAssembly nem igényel szemétgyűjtöt, mivel explicit memória kezelését alkalmaz. A WebAssembly JIT alkalmazásával a teljesítmény szintje közel van a natív kódhoz. A WebAssembly fő feladatai közé tartozik a hordozhatóság, a viselkedés előrejelzése és a kód végrehajtásának azonosítása különböző platformokon. Az utóbbi időben a WebAssembly-t is mint univerzális platformot a kód biztonságos végrehajtására bármilyen infrastruktúrán, operációs rendszeren és eszközön, nem korlátozva a böngészőkre.
A W3C három specifikációt standardizált, amelyek a WebAssembly-vel kapcsolatosak:
- — a WebAssembly köztes kód végrehajtására szolgáló alacsony szintű virtuális gép leírását tartalmazza. A WebAssembly-vel kapcsolatos források " .wasm " formátumban érkeznek, amely hasonlít a Java " .class " fájljára, és statikus adatokat, valamint kód szegmenseket tartalmaz, amelyek ezekkel az adatokkal dolgoznak.
- — egy Promise mechanizmusra épülő programozási felületet határoz meg a " .wasm " források lekérdezésére és végrehajtására. A WebAssembly források formátuma optimalizálva van a végrehajtás kezdetéhez, anélkül hogy megvárnák a fájl teljes betöltését, ami növeli a webalkalmazások reakciókészségét.
- — API-t biztosít a JavaScript-tel való integrációhoz. Lehetővé teszi értékek lekérdezését és paraméterek átadását a WebAssembly funkcióinak. A WebAssembly végrehajtása megfelel a JavaScript biztonsági modelljének, és a rendszer fő részével való interakció a JavaScript-kód végrehajtásához hasonlóan történik.
A jövőben specifikációk készítése várható a WebAssembly ilyen lehetőségeihez:
- Többszálúság megosztott memóriával és atomikus memória-hozzáféréssel;
- Vektoralapú SIMD műveletek, amelyek lehetővé teszik a ciklusok párhuzamos végrehajtását;
- Referencia típusok közvetlen hivatkozásokhoz WebAssembly kódból;
- Funkciók hívásának lehetősége anélkül, hogy további helyet foglalnánk el a veremben;
- Integráció az ECMAScript modulokkal — WebAssembly kód JavaScript-ből történő betöltésének lehetősége ECMAScript 6 specifikációnak megfelelő modulokként;
- Mód a szemétgyűjtő működéséhez;
- Hibakeresési interfészek;
- (WebAssembly System Interface) — API a közvetlen interakcióhoz az operációs rendszerrel (POSIX API fájlokkal, socketekkel stb. való munkához).
Forrás: opennet.ru
