Wasmer 3.0 поставляется с улучшениями в WASI, API, управлении памятью и многом другом.

Васмер

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

Спустя почти 6 месяцев с момента предыдущего выпуска, вышла новая версия Wasmer 3.0, третья основная версия проекта, которая развивается среда выполнения для выполнения модулей WebAssembly которые можно использовать для создания универсальных приложений, которые могут работать в разных операционных системах, а также для ненадежного выполнения кода.

La возможность запускать одно и то же приложение на разных платформах это обеспечивается путем компиляции кода в низкоуровневый промежуточный код WebAssembly, который может работать в любой операционной системе или встраиваться в программы на других языках программирования. Программы — это легкие контейнеры, которые запускают псевдокод WebAssembly.

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

Чтобы перевести WebAssembly в машинный код текущей платформы, вам поддерживает подключение различных бэкэндов сборки (Singlepass, Cranelift, LLVM) и двигателей (с использованием JIT или генерации машинного кода). Управление доступом и взаимодействие с системой обеспечивается API WASI (WebAssembly System Interface), который предоставляет программные интерфейсы для работы с файлами, сокетами и другими функциями, предоставляемыми операционной системой.

платформа позволяет достичь производительности выполнения приложений, близкой к производительности нативных сборок.

Основные новинки Wasmer 3.0

В этой новой версии Wasmer 3.0 возможность создавать собственные исполняемые файлы для любой платформы. Команда "wasmer create-exe» был полностью переработан для преобразования файла промежуточного кода WebAssembly в автономные исполняемые файлы для платформ Linux, Windows и macOS, которые можно запускать без установки Wasmer.

Еще одна новинка, которая представлена, заключается в том, что возможность запуска пакетов WAPM находится в каталоге wapm.io с помощью команды «wasmer run». Например, выполнить "васмер запускает питон/питон» загрузит пакет python из репозитория wapm.io и запустит его.

API Wasmer Rust был полностью переработан., изменив способ обработки памяти и обеспечив возможность безопасного хранения объектов Wasm в структуре Store.

В этой новой версии Wasmer 3.0 также выделяется улучшенная реализация WASI API (WebAssembly System Interface), помимо исправления проблем в WASI API для работы с файловой системой. Внутренние типы были переработаны с использованием WAI (интерфейсов WebAssembly), что позволит в будущем реализовать ряд новых функций.

Вдобавок к этому упростились и движки, так как вместо отдельных движков для JIT используется динамическая и статическая привязка (Universal, Dylib, StaticLib), теперь предлагает общий движок и загружает и сохраняет код который управляется на уровне настройки параметров.

Для десериализации артефактов используется фреймворк rkyv, который обеспечивает операцию нулевого копирования, т. е. не требует дополнительного выделения памяти и выполняет десериализацию, используя только изначально предоставленный буфер.

Из другие изменения которые выделяются из этой новой версии:

  • Использование rkyv значительно увеличило скорость запуска.
  • Компилятор Singlepass был улучшен для поддержки многозначных функций, повышения надежности и добавления поддержки платформ обработки исключений.
  • Набор компонентов wasmer-js был реализован для запуска Wasmer в веб-браузере и взаимодействия с ним из JavaScript с использованием библиотеки wasm-bindgen.
  • Была предложена новая структура. ПамятьView который позволяет читать и записывать данные в линейную область памяти.

Наконец, следует упомянуть, что программы распространяются в виде обычных модулей WebAssembly, которыми можно управлять с помощью менеджера пакетов WAPM. Wasmer также доступен в виде библиотеки, которую можно использовать для встраивания кода WebAssembly в программы Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir и Java.

Код проекта написан на Rust и распространяется под лицензией MIT, подробнее об этом можно узнать, По следующей ссылке.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.