Консорциумът W3C обяви проект за нова спецификация, която стандартизира междинния код на WebAssembly 2.0 и свързания с него API, за да позволи създаването на високопроизводителни приложения, които са преносими между браузъри и хардуерни платформи.
WebAssembly предоставя независим от браузъра общ мидълуер на ниско ниво за изпълнение на приложения, компилирани от различни езици за програмиране. Чрез използване на JIT за WebAssembly разработчиците могат да постигнат ниво на производителност, близко до нейтив кода.
Технологията WebAssembly може да се използва за изпълнение на високопроизводителни задачи в браузъра, като кодиране на видео, обработка на звук, графика и 3D манипулации, разработка на игри, криптографски операции и математически изчисления. Това става чрез изпълнение на код, написан на компилируеми езици като C /C++.
Сред основните задачи на WebAssembly е осигуряването на преносимост, предсказуемост на поведението и идентичност на изпълнението на кода на различни платформи. Напоследък WebAssembly също беше популяризиран като универсална платформа за сигурно изпълнение на код във всякакви инфраструктури, операционни системи и устройства, не само в браузъри.
W3C публикува три проектни спецификации на WebAssembly 2.0:
WebAssembly Core – описва виртуална машина от ниско ниво за изпълнение на междинния код на WebAssembly. Ресурсите, свързани с WebAssembly, идват във формат .wasm, който е подобен на файловете .class на Java и съдържа статични данни и сегменти от код за работа с тези данни.
WebAssembly JavaScript интерфейс – предоставя API за интегриране с JavaScript. Позволява на разработчиците да получават стойности и да предават параметри на функциите на WebAssembly. Изпълнението на WebAssembly следва модела за сигурност на JavaScript и цялото взаимодействие с основната система се извършва подобно на изпълнението на JavaScript код.
WebAssembly Web API – дефинира API, базиран на механизма Promise за заявка и изпълнение на .wasm ресурси. Ресурсният формат на WebAssembly е оптимизиран за стартиране на изпълнение, без да се чака пълното изтегляне на файла, което подобрява отзивчивостта на уеб приложенията.