Wasmer 2.0 on nüüd saadaval, tööriistade komplekt, mis võimaldab luua WebAssembly põhiseid rakendusi.

Состоялся второй значительный выпуск проекта 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 levitatakse tavapäraste WebAssembly moodulitena, mille haldamiseks saab kasutada paketihaldurit WAPM. Wasmer on samuti saadaval teegina, mida saab kasutada WebAssembly koodi sisestamiseks programmides, mis on kirjutatud Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir ja Java keeltes.

Platvorm võimaldab saavutada rakenduste täitmise jõudlust, mis on lähedane kohalike kogumite täitmisele. Native Object Engine'i abil saab WebAssembly mooduli jaoks genereerida masinkoodi („wasmer compile —native” kompileeritud objektifailide .so, .dylib ja .dll genereerimiseks), mille käitamiseks on vajalik minimaalne runtime, kuid säilitatakse kõik sandbox-isoleerimise võimalused. On võimalik pakkuda eelnevalt kompileeritud programme koos integreeritud Wasmeriga. Täienduste ja laienduste loomiseks on saadaval 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. Сокращено время десериализации данных.
    Wasmer 2.0 on nüüd saadaval, tööriistade komplekt, mis võimaldab luua WebAssembly põhiseid rakendusi.
    Wasmer 2.0 on nüüd saadaval, tööriistade komplekt, mis võimaldab luua WebAssembly põhiseid rakendusi.
  • Для более точного отражения сути изменены названия движков: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster