Saadaval on Wasmer 2.0, tööriistade komplekt WebAssembly põhiste rakenduste loomiseks.

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

Переносимость обеспечивается благодаря компиляции кода приложения в низкоуровневый промежуточный код WebAssembly, который может запускаться в любых ОС или встраиваться в программы на других языках программирования. Программы представляют собой легковесные контейнеры, в которых выполняется псевдокод WebAssembly. Данные контейнеры не привязаны к операционной системе и могут включать код, изначально написанный на любом языке программировании. Для компиляции в WebAssembly может использоваться инструментарий Emscripten. Для трансляции WebAssembly в машинный код текущей платформы поддерживается подключение разных бэкендов компиляции (Singlepass, Cranelift, LLVM) и движков (задействование JIT или генерация машинного кода).

Управление доступом и взаимодействие с системой обеспечивается при помощи API WASI (WebAssembly System Interface), предоставляющем программные интерфейсы для работы с файлами, сокетами и другими функциями, предоставляемыми операционной системой. Приложения изолированы от основной системы в sandbox-окружении и имеют доступ только к заявленной функциональности (механизм безопасности на основе управления возможностями — для действий с каждым из ресурсов (файлы, каталоги, сокеты, системные вызовы и т.п.) приложению должны быть даны соответствующие полномочия).

WebAssembly konteineri käivitamiseks piisab, kui installida süsteemi Wasmer runtime, mis tarnitakse ilma väliste sõltuvusteta („curl https://get.wasmer.io -sSfL | sh”) ja käivitada vajalik fail („wasmer test.wasm”). Programmid levivad tavapäraste WebAssembly moodulitena, mille haldamiseks saab kasutada WAPM paketihaldurit. Wasmer on samuti saadaval raamatukoguna, mida saab kasutada WebAssembly koodi integreerimiseks Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir ja Java keeltesse.

Platvorm võimaldab saavutada rakenduste töötluse jõudlust, mis on lähedane natiivsete kogude täitmisele. Native Object Engine'i abil WebAssembly-mooduli jaoks saab genereerida masinkoodi („wasmer compile —native” eelkompileeritud objektifailide .so, .dylib ja .dll genereerimiseks), mille käivitamiseks on vajalik minimaalne runtime, kuid säilitades kõik sandbox-isolatsiooni võimalused. On võimalik tarnida eelkompileeritud programme koos sisseehitatud Wasmeriga. Laienduste ja täiustuste loomiseks pakutakse Rust API ja Wasm-C-API.

Значительная смена номера версии Wasmer связана с внесением нарушающих совместимость изменений во внутренний API, которые, по заверению разработчиков, никак не отразятся на 99% пользователей платформы. Из нарушающих совместимость изменений также отмечается изменение формата сериализированных модулей Wasm (модули, сериализированные в Wasmer 1.0, не смогут использоваться в Wasmer 2.0). Другие изменения:

  • Поддержка инструкций SIMD (Single Instruction, Multiple Data), позволяющих организовать распараллеливание операций над данными. Из областей, в которых применение SIMD может заметно поднять производительность, отмечается машинное обучение, кодирование и декодирование видео, обработки изображений, симуляция физических процессов и манипуляции с графикой.
  • Поддержка ссылочных типов, позволяющих модулям Wasm обращаться к информации в других модулях или в базовом окружении.
  • Проведена значительная оптимизация производительности. Скорость работы LLVM runtime с числами с плавающей запятой увеличена примерно на 50%. Значительно ускорен вызов функций за счёт сокращения ситуаций, требующих обращения к ядру. На 40% увеличена производительность генератора кода Cranelift. Сокращено время десериализации данных.
    Saadaval on Wasmer 2.0, tööriistade komplekt WebAssembly põhiste rakenduste loomiseks.
    Saadaval on Wasmer 2.0, tööriistade komplekt WebAssembly põhiste rakenduste loomiseks.
  • Для более точного отражения сути изменены названия движков: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster