Спустя почти полгода после запуска первой версии, объявлено о запуске новой версии проекта Wasmer, которая находится во второй основной его версии. и в котором важные изменения были внесены до такой степени, что внутренние API в этой второй версии несовместимы, хотя были также добавлены новые функции, которые повышают стабильность, безопасность и производительность.
Для тех, кто не знает Васмер, вы должны знать, что он разрабатывает среду выполнения для выполнения модулей WebAssembly. которые можно использовать для создания универсальных приложений, которые могут работать в нескольких операционных системах, и для изолированного выполнения ненадежного кода.
Переносимость обеспечивается путем компиляции кода приложения в промежуточное ПО WebAssembly низкого уровня. Он может работать в любой операционной системе или быть интегрирован в программы на других языках программирования. Программы - это легкие контейнеры, которые запускают псевдокод WebAssembly.
эти контейнеры не привязаны к операционной системе и могут включать код, изначально написанный на любом языке программирование. Набор инструментов Emscripten можно использовать для компиляции в WebAssembly. Для преобразования WebAssembly в машинный код текущей платформы поддерживается подключение различных бэкэндов сборки (Singlepass, Cranelift, LLVM) и движков (с использованием JIT или генерации машинного кода).
Управление доступом и взаимодействие с системой обеспечивается через API WASI (WebAssembly System Interface), который предоставляет программные интерфейсы для работы с файлами, сокетами и другими функциями, предоставляемыми операционной системой.
Приложения изолированы от основной системы и они имеют доступ только к заявленной функциональности (механизм безопасности, основанный на возможностях управления для действий с каждым из ресурсов (файлы, каталоги, сокеты, системные вызовы и т. д.).
Основные новинки Wasmer 2.0
В этой представленной новой версии упоминается, что значительное изменение номера версии Автор Wasmer связано с внесением изменений несовместимости во внутренний API, что, по словам разработчиков, не коснется 99% пользователей с платформы любым способом.
Среди основных изменений совместимости также есть изменение формата сериализованных модулей Wasm (модули, сериализованные в Wasmer 1.0, не будут использоваться в Wasmer 2.0).
Кроме того, выделена поддержка SIMD-инструкций (Одна инструкция, несколько данных), которые разрешить распараллеливание операций с данными. Области, в которых использование SIMD может значительно повысить производительность, включают машинное обучение, кодирование и декодирование видео, обработку изображений, моделирование физических процессов и манипуляции с графикой.
также выделена поддержка ссылочных типов, позволяя модулям Wasm получать доступ к информации в других модулях или в базовой среде, и были сделаны значительные улучшения производительности. Скорость выполнения LLVM с числами с плавающей запятой увеличена примерно на 50%.
Вызов функций был значительно ускорен за счет уменьшения количества ситуаций, требующих вызовов ядра.. Производительность генератора кода Cranelift увеличена на 40%. Уменьшено время десериализации данных. Чтобы точнее отразить суть, имена движков были изменены: JIT → Universal, Native → Dylib (динамическая библиотека), Object File → StaticLib (статическая библиотека).
В конце концов Если вы хотите узнать больше о Wasmer, вы должны знать, что код проекта написан на Rust, у него есть лицензия MIT, и вы можете проверить его детали на его официальном сайте по адресу по следующей ссылке.
Установите среду выполнения Wasmer
С другой стороны, для тех, кто заинтересован в возможности запускать контейнер WebAssembly, вам нужно только установить среду выполнения Wasmer в вашей системе, которая поставляется без внешних зависимостей.
Важно отметить, что Wasmer можно запускать на любой платформе macOS, Linux и Windows, единственное требование - установить его среду выполнения в вашей системе.
Для этого просто запустите в терминале следующую команду:
curl https://get.wasmer.io -sSfL | sh
И после этого они должны выполнить требуемый файл:
wasmer test.wasm
Если вам нужно узнать больше о том, как работает Wasmer, или вы хотите узнать его исходный код, вы можете проконсультироваться со всем этим. По следующей ссылке.