На цій сторінці показано неперевірені зміни
| WebAssembly | |
|---|---|
| Парадигма | Expression-oriented |
| Дата появи | 2015[1] |
| Творці | W3C |
| Розробник | W3C, Microsoft, Google, Mozilla[d] і Apple Inc. |
| Останній реліз | 2.0 (1 червня2022)[2] |
| Система типізації | статична |
| Під впливом від | asm.jsd і Google Native Clientd |
| Платформа | платформо-незалежна |
| Ліцензія | Apache License |
| Звичайні розширення файлів | .wast або.wasm[3] |
| Репозиторій вихідного коду | github.com/WebAssembly/design github.com/WebAssembly/spec |
| Вебсайт | webassembly.org |
WebAssembly абоwasm — незалежний відбраузера універсальний низькорівневийпроміжний код для виконання в браузерізастосунків, скомпільованих з різнихмов програмування. Серед основних завдань WebAssembly виділяється забезпечення перенесення між браузерами, передбачуваність поведінки та ідентичності виконання коду на різних платформах. Використання WebAssembly також дозволить істотно скоротити розмір застосунків, завдяки компактному проміжному коду, і збільшити швидкість декодування.
Робоча група зі стандартизації технології WebAssembly сформована при організаціїW3C з представників проєктівGoogle Chrome,Microsoft Edge,Firefox іWebKit.[4]
З особливостей WebAssembly, що дозволяють домогтися вищої продуктивності, в порівнянні зJavaScript, виділяється:[5]
Відпочатку WebAssembly створювався на основі розробокasm.js[6] таPNaCl[4]. Основна відмінність відAsm.js полягає в тому, що WebAssembly є бінарним форматом, що не зав'язується на JavaScript і дозволяє виконувати в браузері низькорівневий проміжний код. На відміну від PNaCl, проміжний код WASM не є машинним кодом і не ізольований в окремій віртуальній машині, а виконується зі схожим на JavaScript рівнем ізоляції.
Для розробників підготовлено інструментарій для компіляції модулів WebAssembly з коду мовамиC/C++. Наприклад, для компіляції С/C++/asm.js в WebAssembly можна використовуватиEmscripten або створений на його основі спеціальний компіляторBinaryen. Для перетворення тестового формату в бінарний поставляється транслятор WABT.
WebAssembly анонсували 17 червня 2015[7], а 15 березня 2016 показали робочийAngry Bots наUnity уFirefox,[8]Chromium,Google Chrome,[9] таMicrosoft Edge.[10]
У лютому 2017 робоча група зі стандартизації WebAssembly вирішила[11], що бінарний формат і початковий WebAssembly API досягли рівня MVP (мінімально життєздатний продукт), що дає розробникам браузерів зелене світло на включення WebAssembly за умовчанням.
WebAssembly включений за умовчанням у браузерах Firefox 52[12] та Chrome 57[13] у березні 2017.
У серпні 2024 було представлено експериментальне демо відображення рукописного шрифту з допомогою рушія Harfbuz на WASM[14][15].
This project as proof-of-concept implements a synthesizer that generates and rasterizes handwriting-style font, backed by a super-lightweight RNN model (~14MiB).