Lansohet versioni 5.0 i projektit Wasmer, i cili zhvillon runtime për ekzekutimin e moduleve WebAssembly, që mund të përdoret për krijimin e aplikacioneve universale, të cilat mund të ekzekutohen në sisteme të ndryshme operative. Wasmer gjithashtu mund të përdoret për ekzekutimin e izoluar të blloqeve të kodit të pakontrolluar brenda aplikacioneve të zakonshme. Kodi i projektit është shkruar në gjuhën Rust dhe shpërndahet nën licencën MIT.
Mundësia e ekzekutimit të një applicationi në platforma të ndryshme realizohet përmes kompilimit në një kod ndërmjetës të nivelit të ulët WebAssembly, i cili mund të ekzekutohet në çdo OS ose të përfshihet në programe të tjera në gjuhë programuese. Programet përbëjnë kontejnerë të lehtë, në të cilat ekzekutohet pseudokodi WebAssembly. Këta kontejnerë nuk janë të lidhur me sistemin operativ dhe mund të përfshijnë kod që është shkruar fillimisht në çdo gjuhë programuese.
Për ekzekutimin e kodit ndërmjetës WebAssembly ose për përkthimin e tij në kodin makinerik të platformës së synuar ofrohen bBackends të ndryshëm:
- Backend-i i bazuar në kompilerin Singlepass, optimal për përdorim në blockchain.
- Backend-i i bazuar në gjeneruesin e kodit Cranelift, optimal për përdorim gjatë zhvillimit.
- Backend-i i bazuar në kompilerin LLVM, optimal për përdorim në implementimet e punës.
- Backend për ekzekutimin në shfletuesin web.
- Backend-i i bazuar në motorin JavaScript JavascriptCore, optimal për përdorim në platformën macOS.
- Backend-i i bazuar në motorin JavaScript V8, optimal për aplikacionet për platformat iOS dhe Android.
- Backend-i i bazuar në interpretuesin Wasmi, optimal për blockchain dhe projekte Rust që nuk përdorin bibliotekën standarde (nostd).
- Backend-i i bazuar në runtime WAMR, optimal për platformën iOS.
Aplikacionet janĂ« tĂ« izoluar nga sistemi kryesor nĂ« njĂ« mjedis sandbox dhe kanĂ« qasje vetĂ«m nĂ« funksionalitetin e deklaruar. PĂ«r izolimin pĂ«rdoret njĂ« mekanizĂ«m i bazuar nĂ« menaxhimin e mundĂ«sive â pĂ«r çdo veprim me burimet (skedaret, katalogĂ«t, soket, thirrjet sistemore etj.), aplikacionit duhet t'i jepen mekatĂ« pĂ«rkatĂ«se. Menaxhimi i qasjes dhe ndĂ«rveprimi me sistemin sigurohet pĂ«rmes API WASI (WebAssembly System Interface), qĂ« ofron ndĂ«rfaqe programore pĂ«r punĂ«n me skedarĂ«t, soket dhe funksione tĂ« tjera sistemore.
Platforma lejon arritjen e një performance ekzekutimi të aplikacioneve e cila është e afërt me atë të ndërtimit nativ. Përmes Native Object Engine për modulin WebAssembly, mund të gjenerohet kodi makinerik, për ekzekutimin e të cilit kërkohet një runtime minimal, por ruhet të gjitha mundësitë e izolimit sandbox. Mund të ofrohen programe të parapërgatitura 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.
Novitetet kryesore të Wasmer 5.0:
- ĂshtĂ« realizuar mundĂ«sia e pĂ«rdorimit tĂ« interpretuesve WebAssembly.
- ĂshtĂ« shtuar njĂ« backend eksperimentale e bazuar nĂ« interpretuesin e lehtĂ« Wasmi, qĂ« lejon ekzekutimin e kodit ndĂ«rmjetĂ«s WebAssembly nĂ« mjedise me resurse tĂ« kufizuara.
- ĂshtĂ« shtuar njĂ« backend eksperimentale e bazuar nĂ« runtime WAMR (WebAssembly Micro Runtime), e optimizuar pĂ«r konsumin minimal tĂ« burimeve dhe e pĂ«rshtatshme pĂ«r t'u pĂ«rdorur nĂ« pajisje me kapacitet tĂ« vogĂ«l memorjeje.
- ĂshtĂ« shtuar njĂ« backend eksperimentale e bazuar nĂ« motorin JavaScript v8, i pĂ«rdorur nĂ« shfletuesit nĂ« bazĂ«n e kodit Chromium. Avantazhi kryesor i pĂ«rdorimit tĂ« backend-it tĂ« bazuar nĂ« V8 Ă«shtĂ« mundĂ«sia e pĂ«rdorimit tĂ« debugger-it dhe mjeteve pĂ«r zhvillim web tĂ« integruara nĂ« kĂ«tĂ« motor, si dhe disponueshmĂ«ria nĂ« V8 e funksionaliteteve tĂ« avancuara tĂ« WebAssembly, tĂ« tilla si trajtimi i pĂ«rjashtimeve dhe mbledhja e plehrave.
- Backend-i i bazuar në LLVM ka shtuar përkrahjen eksperimentale për arkitekturën Loongarch64.
- ĂshtĂ« shtuar pĂ«rkrahja pĂ«r platformĂ«n iOS, e cila Ă«shtĂ« e disponueshme kur pĂ«rdoren backend-et WAMR, Wasmi dhe V8.
- ĂshtĂ« ndĂ«rprerĂ« pĂ«rkrahja pĂ«r kompilerin Emscripten.
- Janë përditësuar varësitë, përfshirë LLVM 18, gjeneratorin e kodit Cranelift 27 dhe framework-un rkyv 0.8.
- ĂshtĂ« bĂ«rĂ« optimizimi i performancĂ«s. PĂ«r shembull, gjatĂ« ekzekutimit tĂ« operacioneve tĂ« deserializimit tĂ« moduleve vĂ«rehet njĂ« rritje e performancĂ«s deri nĂ« 50%.







Burimi: opennet.ru







