Софт

Wasmer 5 добавляет поддержку iOS

Wasmer 5 добавляет поддержку iOS

Команда Wasmer выпустила версию Wasmer 5.0. Время выполнения WebAssembly добавляет экспериментальную поддержку большего количества бэкграундов, включая V8, Wasmi и WAMR. Также появилась поддержка iOS и обновленные компиляторы, включая LLVM 18 и новейший Cranelift.

Wasmer - это быстрая и безопасная среда выполнения WebAssembly, которая позволяет запускать легковесные контейнеры в любом месте, включая настольные компьютеры, облачные среды, границы и браузеры.

Wasmer разработан как безопасный по умолчанию и не получает доступа к файлам, сетевым ресурсам или локальному окружению, если это не разрешено явно. Он поддерживает WASIX и WASI (WebAssembly System Interface) из коробки. WASI - это набор стандартных спецификаций API для программного обеспечения, скомпилированного по стандарту W3C WebAssembly (Wasm). WASIX состоит из WASI и дополнительных неинвазивных расширений системных вызовов. Wasmer предназначен для выполнения WebAssembly на скоростях, близких к нативным, и для встраивания в любое место с помощью Wasmer SDK.

Новая поддержка дополнительных бэкэндов была вызвана запросами сообщества пользователей Wasmer. Когда пользователей спросили, какие бэкграунды они хотели бы видеть в Wasmer, более половины из них попросили поддержку V8 (движок, на котором работает среда выполнения Google Chrome JavaScript), а также поддержку интерпретаторов. Поддержка интегрирует бэкграунды через Wasm-C-API, поскольку все они имеют общий внешний интерфейс. Эти дополнения также означают, что любой интерпретатор или среда выполнения, поддерживающая спецификацию Wasm-C-API, может быть интегрирована в Wasmer.

В этом выпуске также добавлена возможность использования WebAssembly на iOS-устройствах с помощью нового интерпретируемого режима. Команда Wasmer надеялась, что поддержка JavacriptCore в Wasmer, которая была добавлена в прошлом году, позволит быстро работать на iOS, так как JIT будет неограниченным. К сожалению, начиная с iOS 14, Apple ограничила возможность использования WebAssembly через JavascriptCore. Чтобы найти способ обойти ограничения, Wasmer 5 использует возможности V8, Wasmi и WebAssembly Micro Runtime (WAMR), чтобы дать разработчикам возможность беспрепятственно запускать модули WebAssembly на iOS без необходимости изменения кодовой базы.

Помимо новых функций, команда работала над тем, чтобы сделать кодовую базу Wasmer более компактной. Частично это было достигнуто за счет удаления поддержки Emscripten. Это объясняется тем, что привязки Emscripten в последние два года практически не использовались, отчасти потому, что Emscripten выдает код, используя системные вызовы WASI, и не нуждается в специальных привязках.

В эту версию включены последние версии компиляторов Cranelift и LLVM 18. По словам команды, обновленная интеграция Cranelift позволила значительно повысить скорость выполнения, а включение LLVM 18 улучшило совместимость и производительность.
Wasmer 5 доступен уже сейчас.

Читайте также