Слайд 2Какво представлява WebAssembly
Виртуална машина за изпълнение на софтуер
Формат за изпълними файлове
Набор от
инструменти за компилация, свързване, дебъгване и профилиране
Отворен уеб стандарт
Слайд 3Какво НЕ е WebAssembly
WebAssembly не е стандартна библиотека
WebAssembly не изисква наличието на
JavaScript интерпретатор и не заивиси от JavaScript по някакъв начин
WebAssembly не е обвързан по никакъв начин с конкретна хардуерна платформа
WebAssembly не е изцяло и само предназначен за изпълнение в браузър
Слайд 4Подобни на WebAssembly виртуални машини
По предназначение WebAssembly наподобява JVM
Въпреки това поддържа операции
на по-ниско ниво от JVM
Има съществени разлики с JVM архитектурата
Всъщност WebAssembly се приближава повече до LLVM като архитектура
Даже можем с право да го наричаме LLVM за уеб
Слайд 5Предимства на WebAssembly
Преносимост (може да се изпълнява на различни платформи)
Оптимизиран откъм размер
на изпълнимите файлове, както и откъм времето им на зареждане и изпълнение
Поддържа се във всички популярни уеб браузъри (с малко допълнителни настройки)
Поддържа вграждане в софтуер, който не е ориентиран към уеб
Слайд 6WebAssembly е ефикасен
Стекова виртуална машина
Силно оптимизиран бинарен формат за изпълними файлове
Скорост на
изпълнение, сходна с тази на native софтуера
Постига над 20-кратно ускорение спрямо JavaScript в бразуъра
Възползва се от възможностите на хардуера на хост машината
Поддръжка за SIMD инструкции (в бъдеще)
Слайд 7WebAssembly е сигурен
Програмите се изпълняват в изолирана защитена среда (sandbox)
Достъпът до паметта
е гарантирано безопасен
Няма NULL pointer изключения
Нвеъзможно е да се извърши buffer overflow атака
Следва се same-origin правилото
Следва се моделът за сигурност в уеб като цяло
Слайд 8WebAssembly е отворен
Той включва само спецификация
Все пак има свободна имплементация по подразбиране
Консистентност
между различните браузъри
Дебъгването и тестването е улеснено от текстовия формат, който е human-readable и може да се достъпи чрез View Source командата в браузъра
Слайд 9WebAssembly е част от уеб платформата
Отворен W3C стандарт
Имплементациите поддържат стандартните уеб интерфейси
(т.е. браузърските обекти в Javascript)
Спецификацията няма конкретни версии, което отразява точно същността на уеб екосистемата
Изграден с идеята за обратна съвместимост
Слайд 10Ресурси
Уебсайт: http://webassembly.org
GitHub: https://github.com/WebAssembly
Community Group на W3C: https://www.w3.org/community/webassembly/
Примерна имплементация: https://github.com/WebAssembly/spec