Wasmer 3.0 është në dispozicion, një mjet për ndërtimin e aplikacioneve mbi WebAssembly

U paraqit versioni i tretë i rëndësishëm i projektit Wasmer, i cili po zhvillon një runtime për ekzekutimin e moduleve WebAssembly, i cili mund të përdoret për të krijuar aplikacione universale që mund të funksionojnë në sisteme të ndryshme operative, si dhe për ekzekutimin e izoluar të kodit jo të besueshëm. Kodi i projektit është shkruar në gjuhën Rust dhe shpërndahet nën licencën MIT.

Mundësia e ekzekutimit të një aplikacioni në platforma të ndryshme sigurohet përmes kompilim të kodit në kodin e ndërmjetëm të ulët WebAssembly, i cili mund të ekzekutohet në çfarëdo OS ose të embed-uar në programe të tjera në gjuhë programuese. Programet janë konteinerë të lehtë në të cilët ekzekutohet pseudokodi WebAssembly. Këta konteinerë nuk janë të lidhur me sistemin operativ dhe mund të përfshijnë kod që fillimisht është shkruar në çfarëdo gjuhë programuese. Për kompilim në WebAssembly mund të përdoret instrumenti Emscripten. Për përkthimin e WebAssembly në kodin makinerik të platformës aktuale mbështetet lidhja e backend-eve të ndryshme të kompilim (Singlepass, Cranelift, LLVM) dhe motorëve (përdorimi i JIT ose gjenerimin e kodit makinerik).

Aplikacionet janë të izoluara nga sistemi kryesor në një ambient sandbox dhe kanë qasje vetëm në funksionalitetin e deklaruar (mekanizmi i sigurisë i bazuar në kontrollin e mundësive - për veprimet me çdo burim (skedarë, katalogë, socket, thirrje sistemore, etj.) aplikacionit duhet t'i jepen autorizimet përkatëse). Menaxhimi i aksesit dhe ndërveprimi me sistemin sigurohet përmes API WASI (WebAssembly System Interface), e cila ofron ndërfaqe programuese për punën me skedarët, socket-at dhe funksione të tjera që ofrohen nga sistemi operativ.

Platforma lejon arritjen e performancĂ«s sĂ« ekzekutimit tĂ« aplikacioneve, tĂ« afĂ«rt me ekzekutimin e ndĂ«rtimeve natives. FalĂ« Native Object Engine pĂ«r modul WebAssembly mund tĂ« gjeneroni kodin e makinerisĂ« («wasmer compile —native» pĂ«r gjenerimin e skedarĂ«ve tĂ« objektit .so, .dylib dhe .dll tĂ« parakomplikuara), pĂ«r ekzekutimin e tĂ« cilit kĂ«rkohet njĂ« runtime minimal, por ruhet tĂ«rĂ« mundĂ«sia e izolimit sandbox. Ofrimi i programeve tĂ« parakomplikuara me Wasmer tĂ« integruar Ă«shtĂ« i mundur. PĂ«r krijimin e shtesave dhe plotĂ«simeve ofrohen Rust API dhe Wasm-C-API.

Për të ekzekutuar një kontejner WebAssembly mjafton të instaloni në sistemin runtime Wasmer, i cili vijon pa varësi të jashtme ("curl https://get.wasmer.io -sSfL | sh"), dhe të ekzekutoni skedarin e nevojshëm ("wasmer test.wasm"). Programet shpërndahen në formën e moduleve të zakonshëm WebAssembly, për menaxhimin e të cilave mund të përdoret menaxheri i paketave WAPM. Wasmer është gjithashtu i disponueshëm në formën e një biblioteke, e cila mund të përdoret për të integruar kodin WebAssembly në programe në gjuhët Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir dhe Java.

Ndryshimet kryesore në Wasmer 3.0:

  • ShtĂ« shtuar mundĂ«sia e krijimit tĂ« skedarĂ«ve ekzekutivĂ« native pĂ«r çdo platformĂ«. Ekipi «wasmer create-exe» Ă«shtĂ« rishikuar plotĂ«sisht, duke lejuar shndĂ«rrimin e skedarit me kodin e ndĂ«rmjetĂ«m WebAssembly nĂ« skedarĂ« ekzekutivĂ« tĂ« pavarur pĂ«r platformat Linux, Windows dhe macOS, tĂ« cilat mund tĂ« funksionojnĂ« pa instaluar vetĂ« Wasmer.
  • EshtĂ« ofruar mundĂ«sia e ekzekutimit tĂ« paketave WAPM, tĂ« vendosura nĂ« katalogun wapm.io, duke pĂ«rdorur komandĂ«n «wasmer run». PĂ«r shembull, ekzekutimi i «wasmer run python/python» do tĂ« çojĂ« nĂ« ngarkimin e paketĂ«s python nga repository wapm.io dhe nĂ« ekzekutimin e saj.
  • API-i i Wasmer Rust Ă«shtĂ« riparĂ« plotĂ«sisht, me njĂ« stil tĂ« ri tĂ« punĂ«s me memorie dhe mundĂ«sinĂ« e ruajtjes sĂ« sigurt tĂ« objekteve Wasm nĂ« strukturĂ«n Store. NjĂ« strukturĂ« e re MemoryView Ă«shtĂ« propozuar, e cila lejon leximin dhe shkruan tĂ« dhĂ«na nĂ« hapĂ«sirĂ«n lineare tĂ« memories.
  • NjĂ« grup komponentĂ«sh wasmer-js Ă«shtĂ« implementuar pĂ«r tĂ« ekzekutuar Wasmer nĂ« shfletuesin web dhe pĂ«r t'u ndĂ«rvepruar me tĂ« nga JavaScript, duke pĂ«rdorur bibliotekĂ«n wasm-bindgen. AftĂ«sitĂ« e wasmer-js pĂ«rkojnĂ« me ato tĂ« komponentĂ«ve wasmer-sys, tĂ« destinuara pĂ«r ekzekutimin e Wasmer nĂ« sisteme operative tĂ« zakonshme.
  • Motoret janĂ« thjeshtuar. NĂ« vend tĂ« mjeteve tĂ« ndara pĂ«r JIT, lidhje dinamike dhe statike (Universal, Dylib, StaticLib), tani ofrohet njĂ« motor i vetĂ«m dhe ngarkimi dhe ruajtja e kodit menaxhohet nĂ« nivelin e konfigurimit.
  • PĂ«r deserializimin e artefakteve, Ă«shtĂ« pĂ«rdorur njĂ« kornizĂ« rkyv qĂ« siguron punĂ« nĂ« modalitetin zero-copy, pra pa kĂ«rkuar alokim tĂ« memories shtesĂ« dhe duke realizuar deserializimin vetĂ«m duke pĂ«rdorur tamponin fillestar tĂ« ofruar. PĂ«rdorimi i rkyv ka lejuar njĂ« rritje tĂ« konsiderueshme tĂ« shpejtĂ«sisĂ« sĂ« nisjes.
  • Kompliku si njĂ«ri i kalimit, Singlepass Ă«shtĂ« pĂ«rmirĂ«suar, duke sjellĂ« mbĂ«shtetje pĂ«r funksione me argumente tĂ« shumta (multi-value), rritje tĂ« besueshmĂ«risĂ« dhe mbĂ«shtetje pĂ«r kornizat e trajtimit tĂ« pĂ«rjashtimeve.
  • Implementimi i API WASI (WebAssembly System Interface) Ă«shtĂ« pĂ«rmirĂ«suar. Problemet nĂ« ndĂ«rfaqen e programit WASI pĂ«r punĂ«n me sistemin e skedarĂ«ve janĂ« zgjidhur. Tipet e brendshme janĂ« riprojektuar duke pĂ«rdorur WAI (WebAssembly Interfaces), qĂ« nĂ« tĂ« ardhmen do tĂ« lejojĂ« realizimin e njĂ« serie mundĂ«sish tĂ« reja.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster