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

Веб-просмотр 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.