Tá Wasmer 2.0, foireann uirlisí chun feidhmchláir bunaithe ar WebAssembly a thógáil, ar fáil

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

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

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

Chun coimeádán WebAssembly a sheoladh, níl le déanamh ach Wasmer a shuiteáil sa chóras ama rite, a thagann gan spleáchais sheachtracha (“curl https://get.wasmer.io -sSfL | sh”), agus rith an comhad riachtanach (“wasmer test.wasm” ). Déantar na cláir a dháileadh i bhfoirm modúil rialta WebAssembly, ar féidir iad a bhainistiú trí úsáid a bhaint as bainisteoir pacáiste WAPM. Tá Wasmer ar fáil freisin mar leabharlann is féidir a úsáid chun cód WebAssembly a leabú i gcláir Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir, agus Java.

Ligeann an t-ardán duit feidhmíocht fhorghníomhaithe feidhmchláir a bhaint amach gar do chomhthionóil dhúchasacha. Trí úsáid a bhaint as an Inneall Oibiachta Dúchasach don mhodúl WebAssembly, is féidir leat cód an mheaisín a ghiniúint (“wasmer compile -native” chun comhaid réad .so, .dylib agus .dll réamhthiomsaithe a ghiniúint, a éilíonn am rite íosta le rith, ach a choinníonn leithlisiú an bhosca gainimh ar fad gnéithe. Is féidir cláir réamh-thiomsaithe a sholáthar le Wasmer ionsuite. Tairgtear an Rust API agus Wasm-C-API chun breiseáin agus síntí a chruthú.

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

  • Поддержка инструкций SIMD (Single Instruction, Multiple Data), позволяющих организовать распараллеливание операций над данными. Из областей, в которых применение SIMD может заметно поднять производительность, отмечается машинное обучение, кодирование и декодирование видео, обработки изображений, симуляция физических процессов и манипуляции с графикой.
  • Поддержка ссылочных типов, позволяющих модулям Wasm обращаться к информации в других модулях или в базовом окружении.
  • Проведена значительная оптимизация производительности. Скорость работы LLVM runtime с числами с плавающей запятой увеличена примерно на 50%. Значительно ускорен вызов функций за счёт сокращения ситуаций, требующих обращения к ядру. На 40% увеличена производительность генератора кода Cranelift. Сокращено время десериализации данных.
    Tá Wasmer 2.0, foireann uirlisí chun feidhmchláir bunaithe ar WebAssembly a thógáil, ar fáil
    Tá Wasmer 2.0, foireann uirlisí chun feidhmchláir bunaithe ar WebAssembly a thógáil, ar fáil
  • Для более точного отражения сути изменены названия движков: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

Foinse: oscailtenet.ru

Add a comment