Wasmer 3.0 është në dispozicion, një mjet për krijimin e aplikacioneve mbi bazën e WebAssembly

U publikua numri i tretë i rëndësishëm i projektit Wasmer, i cili zhvillon një runtime për ekzekutimin e moduleve WebAssembly, i cili mund të përdoret për të krijuar aplikacione universale që mund të ekzekutohen në sisteme operative të ndryshme, si dhe për ekzekutimin e izoluar të kodit të pabesueshë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 falë përpunimit të kodit në një kod të ndërmjetëm me nivel të ulët WebAssembly, i cili mund të funksionojë në çdo sistem operativ ose të integrohet në programa të tjera të gjuhëve të programimit. Programet paraqesin kontejnerë të lehtë, në të cilët ekzekutohet pseudokodi WebAssembly. Këta kontejnerë nuk janë të lidhur me sistemin operativ dhe mund të përmbajnë kod që është shkruar fillimisht në çdo gjuhë programimi. Për përpunim në WebAssembly mund të përdoret mjet i quajtur Emscripten. Për përkthimin e WebAssembly në kodin makinerik të platformës aktuale, mbështetet lidhja e backend-eve të ndryshme të kompilimit (Singlepass, Cranelift, LLVM) dhe motorëve (përdorimi i JIT ose gjenerimi i kodit makinerik).

Aplikacionet janĂ« tĂ« izoluar nga sistemi kryesor nĂ« njĂ« ambient sandbox dhe kanĂ« qasje vetĂ«m nĂ« funksionalitetin e deklaruar (mekanizmi i sigurisĂ« tĂ« bazuar nĂ« menaxhimin e mundĂ«sive — pĂ«r veprime me çdo burim (skedarĂ«, dosje, sokete, thirrje sistemike, etj.) aplikacionit duhet t'i jepen pĂ«rkatĂ«sisht autorizimet e nevojshme). Menaxhimi i qasjes dhe bashkĂ«veprimi me sistemin sigurohet pĂ«rmes API tĂ« WASI (WebAssembly System Interface), qĂ« ofron ndĂ«rfaqe pĂ«r punĂ«n me skedarĂ«t, soketet dhe funksione tĂ« tjera qĂ« ofrohen nga sistemi operativ.

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.

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.

Ndryshimet kryesore në Wasmer 3.0:

  • Shtuar mundĂ«sia pĂ«r tĂ« krijuar skedarĂ« ekzekutivĂ« native pĂ«r çdo platformĂ«. Ekipi "wasmer create-exe" Ă«shtĂ« rishikuar plotĂ«sisht, i cili lejon transformimin e njĂ« skedari me kod ndĂ«rmjetĂ«s WebAssembly nĂ« skedarĂ« ekzekutivĂ« tĂ« pavarur pĂ«r platformat Linux, Windows dhe macOS, tĂ« cilĂ«t mund tĂ« punojnĂ« pa instaluar Wasmer-in vetĂ«.
  • Oferuar mundĂ«sia pĂ«r tĂ« ekzekutuar paketat WAPM, tĂ« vendosura nĂ« katalogun wapm.io, pĂ«rmes komandĂ«s "wasmer run". PĂ«r shembull, ekzekutimi i "wasmer run python/python" do tĂ« çojĂ« nĂ« ngarkimin nga repositori wapm.io tĂ« paketĂ«s python dhe ekzekutimin e saj.
  • API i Wasmer Rust Ă«shtĂ« rigsovuar komplet, me njĂ« stil tĂ« ri tĂ« punĂ«s me kujtesĂ«n dhe mundĂ«sinĂ« pĂ«r ruajtjen e sigurt tĂ« objekteve Wasm nĂ« strukturĂ«n Store. ËshtĂ« propozuar njĂ« strukturĂ« e re MemoryView qĂ« lejon tĂ« lexoni dhe shkruani tĂ« dhĂ«na nĂ« njĂ« zonĂ« lineare tĂ« kujtesĂ«s.
  • NjĂ« grup komponentĂ«sh wasmer-js Ă«shtĂ« zbatuar pĂ«r tĂ« ekzekutuar Wasmer nĂ« shfletuesin web dhe pĂ«r tĂ« bashkĂ«vepruar me tĂ« nga JavaScript, duke pĂ«rdorur bibliotekĂ«n wasm-bindgen. NĂ« funksionalitetin e tij, wasmer-js i pĂ«rshtatet komponenteve wasmer-sys, tĂ« destinuara pĂ«r ekzekutimin e Wasmer nĂ« sisteme operative tĂ« zakonshme.
  • Makinat janĂ« thjeshtuar. NĂ« vend tĂ« makinave tĂ« ndara pĂ«r JIT, lidhjen dinamike dhe atĂ« statike (Universal, Dylib, StaticLib), tani ofrohet njĂ« motor i vetĂ«m dhe ngarkimi dhe ruajtja e kodit menaxhohet nĂ« nivelin e parametrave.
  • PĂ«r deserializimin e artefakteve Ă«shtĂ« pĂ«rdorur framework-u rkyv, i cili siguron funksionim nĂ« modalitetin zero-copy, duke mos kĂ«rkuar alokimin e kujtesĂ«s shtesĂ« dhe duke kryer deserializimin vetĂ«m duke pĂ«rdorur tamponin fillestar tĂ« ofruar. PĂ«rdorimi i rkyv ka rritur ndjeshĂ«m shpejtĂ«sinĂ« e nisjes.
  • Compileri i pĂ«rmirĂ«suar Singlepass, tani mbĂ«shtet funksionet me shumĂ« argumente (multi-value), rritet besueshmĂ«ria dhe Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r kadrot e trajtimit tĂ« pĂ«rjashtimeve.
  • Zhvillimi 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. Llojet e brendshme janĂ« rishikuar duke pĂ«rdorur WAI (WebAssembly Interfaces), e cila nĂ« tĂ« ardhmen do tĂ« mundĂ«sojĂ« implementimin e njĂ« serie mundĂ«sish tĂ« reja.

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