W3C konzorcij O tome kako WebAssembly tehnologiju učiniti preporučenim standardom. WebAssembly pruža univerzalni, o pregledniku neovisan, niskorazinski međukod za pokretanje aplikacija kompiliranih iz različitih programskih jezika. WebAssembly se pozicionira kao obećavajuća i prenosiva tehnologija za stvaranje visokoučinkovitih web aplikacija u različitim preglednicima. WebAssembly se može koristiti za rješavanje zadataka koji zahtijevaju visoke performanse, kao što su kodiranje videa, obrada zvuka, manipulacija grafikom i 3D-om, razvoj igara, kriptografske operacije, matematički izračuni i stvaranje prenosivih implementacija programskih jezika.
WebAssembly je na mnogo načina sličan Asm.js-u, ali se razlikuje po tome što je binarni format neovisan o JavaScriptu. WebAssembly ne zahtijeva sakupljanje smeća jer koristi eksplicitno upravljanje memorijom. Korištenjem JIT-a, WebAssembly može postići razine performansi bliske izvornom kodu. Među glavnim ciljevima WebAssemblyja su prenosivost, predvidljivo ponašanje i identično izvršavanje koda na različitim platformama. Nedavno je WebAssembly također stekao popularnost. kao univerzalna platforma za sigurno izvršavanje koda na bilo kojoj infrastrukturi, operativnom sustavu i uređaju, ne ograničavajući se samo na preglednike.
W3C je standardizirao tri specifikacije vezane uz WebAssembly:
- — opisuje virtualni stroj niske razine za izvršavanje WebAssembly međukoda. Resursi povezani s WebAssemblyjem isporučuju se u formatu ".wasm", koji je sličan Java datoteci ".class" i sadrži statičke podatke i segmente koda za rad s tim podacima.
- — definira API temeljen na obećanju za zahtjevanje i izvršavanje .wasm resursa. Format resursa WebAssembly optimiziran je za početak izvršavanja bez čekanja da se datoteka potpuno preuzme, poboljšavajući brzinu web aplikacija.
- — pruža API za integraciju s JavaScriptom. Omogućuje vam dohvaćanje vrijednosti i prosljeđivanje parametara WebAssembly funkcijama. Izvršavanje WebAssemblyja pridržava se JavaScript sigurnosnog modela, a sva interakcija s temeljnim sustavom izvodi se na isti način kao i izvršavanje JavaScript koda.
U budućnosti planiramo pripremiti specifikacije za WebAssembly značajke kao što su:
- Višenitnost s dijeljenom memorijom i atomskim pristupom memoriji;
- Vektorske operacije temeljene na SIMD-u koje omogućuju paralelizaciju izvršavanja petlje;
- Referentni tipovi za izravno referenciranje objekata iz WebAssembly koda;
- Mogućnost pozivanja funkcija bez korištenja dodatnog prostora na stogu;
- Integracija s ECMAScript modulima - mogućnost učitavanja WebAssembly koda iz JavaScripta kao modula koji su u skladu sa specifikacijom ECMAScript 6;
- Način rada sa sakupljačem smeća;
- Sučelja za otklanjanje pogrešaka;
- (WebAssembly System Interface) je API za izravnu interakciju s operativnim sustavom (POSIX API za rad s datotekama, utičnicama itd.).
Izvor: opennet.ru
