категории | RSS

Релиз Wasmer 5.0 — открытого инструментария для создания приложений на базе WebAssembly

В конце октября 2024 года состоялся релиз проекта Wasmer 5.0. Это открытый инструментарий для создания приложений на базе WebAssembly, который можно использовать для создания универсальных приложений, способных выполняться в разных операционных системах. Wasmer можно использовать для изолированного выполнения не заслуживающих доверия блоков кода в составе обычных приложений. Исходный код проекта написан на языке Rust и опубликован на GitHub под лицензией MIT.

По данным OpenNET, возможность запуска одного приложения с помощью Wasmer на разных платформах реализована через компиляцию в низкоуровневый промежуточный код WebAssembly, который может запускаться в любых ОС или встраиваться в программы на других языках программирования. Программы в Wasmer представляют собой легковесные контейнеры, в которых выполняется псевдокод WebAssembly. Данные контейнеры не привязаны к операционной системе и могут включать код, изначально написанный на любом языке программирования.

Для для выполнения промежуточного кода WebAssembly или его трансляции в машинный код целевой платформы в Wasmer предлагаются различные бэкенды: на базе компилятора Singlepass, на базе генератора кода Cranelift, на базе компилятора LLVM, для запуска в веб-браузере, на базе javascript-движка javascriptCore, на базе javascript-движка V8, а базе интерпретатора Wasmi и на базе runtime WAMR.

Для запуска WebAssembly-контейнера достаточно установить в системе runtime Wasmer, который поставляется без внешних зависимостей ("curl https://get.wasmer.io -sSfL | sh"), и запустить необходимый файл ("wasmer test.wasm"). Программы распространяются в форме обычных WebAssembly-модулей, для управления которыми можно использовать пакетный менеджер WAPM. Wasmer также доступен в форме библиотеки, которую можно использовать для встраивания кода WebAssembly в программы на языках Rust, С/C++, C#, D, Python, javascript, Go, PHP, Ruby, Elixir и Java.

Основные изменения и дополнения в Wasmer 5.0:

• реализована возможность использования интерпретаторов WebAssembly;

• добавлен экспериментальный бэкенд на базе легковесного интерпретатора Wasmi, позволяющего выполнять промежуточный код WebAssembly в окружениях с ограниченными ресурсами;

• добавлен экспериментальный бэкенд на базе WebAssembly runtime WAMR (WebAssembly Micro Runtime), оптимизированного для минимального потребления ресурсов и пригодного для применения на устройствах с небольшим объёмом оперативной памяти;

• добавлен экспериментальный бэкенд на базе javascript-движка v8, используемого в браузерах на кодовой базе Chromium. Основным достоинством применения бэкенда на базе V8 называется возможность использования встроенного в данный движок отладчика и инструментария для web-разработчиков, а также доступность в V8 расширенной функциональности WebAssembly, такой как обработка исключений и сборка мусора;

• в бэкенд, использующий LLVM, добавлена экспериментальная поддержка архитектуры Loongarch64;

• добавлена поддержка платформы iOS, доступная при использовании бэкендов WAMR, Wasmi и V8;

• прекращена поддержка компилятора Emscripten;

• обновлены зависимости, среди которых LLVM 18, генератор кода Cranelift 27 и фреймворк rkyv 0.8;

• проведена оптимизация производительности. Например, при выполнении операций десериализации модулей наблюдается прирост производительности до 50%.



Источник новости: habr.com

DimonVideo
2024-10-30T12:50:02Z

Здесь находятся
всего 0. За сутки здесь было 0 человек
Яндекс.Метрика