Перейти к основному содержимому

Веб-просмотр WebAssembly

· 3 мин. чтения
Команда V8

Сегодня мы рады объявить совместно с Firefox и Edge о веб-просмотре WebAssembly. WebAssembly или Wasm — это новая среда выполнения и цель компиляции для веба, разработанная совместно специалистами из Google, Mozilla, Microsoft, Apple и W3C WebAssembly Community Group.

Что означает данный этап?​

Этот этап значим, поскольку он отмечает:

  • кандидат на выпуск нашей MVP (минимально жизнеспособный продукт) разработки (включая семантику, бинарный формат и JS API)
  • совместимые и стабильные реализации WebAssembly за флагом в trunk в V8 и SpiderMonkey, в сборках для разработки Chakra и на стадии разработки в JavaScriptCore
  • рабочий инструмент для разработчиков для компиляции модулей WebAssembly из исходных файлов C/C++
  • дорожную карту для включения WebAssembly по умолчанию, при условии изменений на основе обратной связи от сообщества

Вы можете узнать больше о WebAssembly на сайте проекта, а также следовать нашему руководству для разработчиков для тестирования компиляции WebAssembly из C и C++ с использованием Emscripten. Документы по бинарному формату и JS API описывают бинарное кодирование WebAssembly и механизм создания модулей WebAssembly в браузере соответственно. Вот простой пример того, как выглядит wasm:

Реализация функции Наибольшего Общего Делителя в WebAssembly, показывающая необработанные байты, текстовый формат (WAST) и исходный код на C.

Поскольку WebAssembly все еще доступен за флагом в Chrome (chrome://flags/#enable-webassembly), его пока не рекомендуют использовать в производственных целях. Однако период веб-просмотра является временем, когда активно собирается обратная связь по дизайну и реализации спецификации. Разработчиков призывают тестировать компиляцию и перенос приложений, а также запускать их в браузере.

V8 продолжает оптимизировать реализацию WebAssembly в компиляторе TurboFan. С марта прошлого года, когда мы впервые объявили об экспериментальной поддержке, мы добавили поддержку параллельной компиляции. Кроме того, мы близки к завершению альтернативного asm.js пайплайна, который преобразует asm.js в WebAssembly под капотом, так что существующие сайты на asm.js смогут получить преимущества компиляции WebAssembly до выполнения.

Что дальше?​

Если не будет существенных изменений дизайна, возникающих из обратной связи сообщества, группа WebAssembly Community планирует создать официальную спецификацию в первом квартале 2017 года, после чего браузерам будет рекомендовано включить WebAssembly по умолчанию. С этого момента бинарный формат будет сброшен до версии 1, а WebAssembly станет бесверсийным, протестированным на наличие функций и обратно совместимым. Более подробная дорожная карта доступна на сайте проекта WebAssembly.