Disponohet Wasmer 2.0, një paketë për krijimin e aplikacioneve në bazë të WebAssembly

Lëshimi i dytë i rëndësishëm i projektit Wasmer ka ndodhur, i cili zhvillon runtime për ekzekutimin e moduleve WebAssembly, që mund të përdoret për të krijuar aplikacione universale, të cilat mund të ekzekutohen në sisteme të ndryshme operative, si dhe për ekzekutimin e izoluar të kodit të pa besueshëm. Kodi i projektit është shkruar në gjuhën Rust dhe shpërndahet nën licencën MIT.

Transportueshmëria sigurohet përmes përkthimit të kodit të aplikacionit në kod të ulët ndërmjetësor WebAssembly, i cili mund të ekzekutohet në çdo OS ose të integrohet në programe të tjerë gjuhësh programimi. Programet përbëjnë konteinerë të lehtë, në të cilat ekzekutohet pseudo-kodi WebAssembly. Këta konteinerë nuk janë të lidhur me sistemin operativ dhe mund të përmbajnë kode fillimisht të shkruara në çdo gjuhë programimi. Për përkthimin në WebAssembly mund të përdoret mjetin Emscripten. Për përkthimin e WebAssembly në kod maqine për platformat aktuale, mbështeten lidhjet e ndryshme të përpunimit (Singlepass, Cranelift, LLVM) dhe motorëve (përdorimi i JIT ose gjenerimi i kodit maqine).

Menaxhimi i aksesit dhe ndërveprimi me sistemin sigurohet përmes API WASI (WebAssembly System Interface), i cili ofron interface për punë me skedarët, soketat dhe funksione të tjera të ofruara nga sistemi operativ. Aplikacionet janë të izoluar nga sistemi kryesor në një mjedis sandbox dhe kanë akses vetëm në funksionalitetin e deklaruar (mekanizmi i sigurisë bazuar në menaxhimin e mundësive — për çdo veprim me burimet (skedarë, katalogë, soketë, thirrje sistemike, etj.) aplikacioni duhet të ketë autorizimet përkatëse).

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

Platformat ofrojnë performancë ekzekutimi të aplikacioneve që është afër ekzekutimit të ndërtimeve native. Me ndihmën e Native Object Engine për modul WebAssembly, mund të gjeneroni kod makinerie ("wasmer compile --native" për të gjeneruar skedarë objektësh të para-kompiluara .so, .dylib dhe .dll), për ekzekutimin e të cilit kërkohet një runtime minimal, por të gjitha mundësitë e izolimit sandbox mbahen. Është e mundur të dorëzoni programe të para-kompiluara me Wasmer të integruar. Për krijimin e shtesave dhe plotësimeve ofrohen Rust API dhe Wasm-C-API.

Ndryshimi i rëndësishëm i numrit të versionit të Wasmer është i lidhur me ndryshimet që thyejnë kompatibilitetin në API-in e brendshëm, të cilat, sipas zhvilluesve, nuk do të ndikojnë në 99% të përdoruesve të platformës. Nga ndryshimet që thyejnë kompatibilitetin gjithashtu përmendet ndryshimi i formatit të moduleve të serializuar Wasm (modulet e serializuara në Wasmer 1.0 nuk do të mund të përdoren në Wasmer 2.0). Ndryshime të tjera:

  • Mbështetje për instruksione SIMD (Single Instruction, Multiple Data), që lejojnë organizimin e paralelizimit të operacioneve mbi të dhënat. Nga fushat ku përdorimi i SIMD mund të rrisë ndjeshëm performancën, përmendet mësimi automat, kodimi dhe dekodimi i videove, përpunimi i imazheve, simulimi i proceseve fizike dhe manovrat me grafikën.
  • Mbështetje për llojet e referencave, që lejojnë moduleve Wasm të aksesojnë informacionin në module të tjera ose në ambientin bazë.
  • Është realizuar një optimizim i rëndësishëm i performancës. Shpejtësia e runtime-it LLVM me numra me pikë të lëvizshme është rritur afërsisht me 50%. Thirrja e funksioneve është përshpejtuar ndjeshëm për shkak të zvogëlimit të rasteve që kërkojnë qasje në bërthamë. Performanca e gjeneratorit të kodit Cranelift është rritur me 40%. Është zvogëluar koha e deserializimit të të dhënave.
    Disponohet Wasmer 2.0, një paketë për krijimin e aplikacioneve në bazë të WebAssembly
    Disponohet Wasmer 2.0, një paketë për krijimin e aplikacioneve në bazë të WebAssembly
  • Për të reflektuar më saktë thelbin, emrat e motorëve janë ndryshuar: JIT → Universal, Native → Dylib (Biblioteka Dinamik), Object File → StaticLib (Biblioteka Statike).

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster