W3C uděluje WebAssembly doporučený standardní stav

Konsorcium W3C oznámeno o udělení statusu doporučovaného standardu technologii WebAssembly. WebAssembly poskytuje na prohlížeči nezávislý, univerzální, nízkoúrovňový přechodný kód pro spouštění aplikací zkompilovaných z různých programovacích jazyků. WebAssembly je umístěna jako slibnější přenosná technologie pro různé prohlížeče pro vytváření vysoce výkonných webových aplikací. WebAssembly lze použít pro výkonově náročné úlohy, jako je kódování videa, zpracování zvuku, grafika a 3D manipulace, vývoj her, kryptografické operace, matematické výpočty a vytváření přenosných implementací programovacích jazyků.

WebAssembly je v mnoha ohledech podobný Asm.js, ale liší se tím, že jde o binární formát, který není vázán na JavaScript. WebAssembly nevyžaduje garbage collector, protože používá explicitní správu paměti. Pomocí JIT pro WebAssembly můžete dosáhnout úrovně výkonu blízké nativnímu kódu. Mezi hlavní cíle WebAssembly patří zajištění přenositelnosti, předvídatelného chování a identického provádění kódu na různých platformách. V poslední době má WebAssembly také postupující jako univerzální platforma pro bezpečné spouštění kódu na jakékoli infrastruktuře, operačním systému a zařízení, neomezené pouze na prohlížeče.

W3C standardizovalo tři specifikace související s WebAssembly:

  • Web Assembly Core — popisuje nízkoúrovňový virtuální stroj pro spouštění přechodného kódu WebAssembly. Zdroje související s WebAssembly přicházejí ve formátu „.wasm“, podobně jako soubor Java „.class“, obsahující statická data a segmenty kódu pro práci s těmito daty.
  • WebAssembly Web API — definuje programovací rozhraní založené na mechanismu Promise pro vyžádání a spouštění zdrojů „.wasm“. Formát prostředku WebAssembly je optimalizován tak, aby spustil provádění bez čekání na úplné načtení souboru, což zlepšuje odezvu webových aplikací.
  • WebAssembly JavaScript rozhraní — Poskytuje rozhraní API pro integraci s JavaScriptem. Umožňuje získat hodnoty a předávat parametry funkcím WebAssembly. Spuštění WebAssembly se řídí bezpečnostním modelem JavaScriptu a veškerá interakce s hlavním systémem se provádí stejným způsobem jako spouštění kódu JavaScript.

V budoucnu plánujeme připravit specifikace pro takové funkce WebAssembly, jako jsou:

  • Multithreading se sdílenou pamětí a přístupem k atomové paměti;
  • Vektorové operace založené na SIMD, umožňující paralelizaci provádění smyčky;
  • Referenční typy pro přímé odkazování na objekty z kódu WebAssembly;
  • Schopnost volat funkce bez utrácení dalšího místa v zásobníku;
  • Integrace s moduly ECMAScript – možnost načíst kód WebAssembly z JavaScriptu jako moduly, které vyhovují specifikaci ECMAScript 6;
  • režim sběrače odpadků;
  • Ladění rozhraní;
  • BYL JSEM (WebAssembly System Interface) - API pro přímou interakci s operačním systémem (POSIX API pro práci se soubory, sokety atd.).

    Zdroj: opennet.ru

Přidat komentář