Wasmer 2.0, qalab loogu talagalay abuurista codsiyada ku salaysan WebAssembly, ayaa diyaar ah

Mashruuca Wasmer ayaa siidaayay siideyntiisii ​​labaad ee weyneyd, isagoo horumarinaya wakhti runtime ah oo lagu fulinayo modules WebAssembly kuwaas oo loo isticmaali karo in lagu abuuro codsiyada caalamiga ah ee ku shaqeyn kara nidaamyada kala duwan ee hawlgalka, iyo sidoo kale in lagu socodsiiyo kood aan la aamini karin oo gooni ah. Xeerka mashruuca wuxuu ku qoran yahay Rust waxaana lagu qaybiyaa shatiga MIT.

Qaadashada waxa lagu gaaraa in la ururiyo koodka codsiga koodka dhexe ee WebAssembly heerka hoose, kaas oo ku shaqayn kara OS kasta ama ku dhex milmi kara barnaamijyada luuqadaha kale ee barnaamijka. Barnaamijyadu waa weelal fudud oo ku shaqeeya WebAssembly pseudocode. Weelashani kuma xidhna nidaamka hawlgalka waxana ku jiri kara kood asal ahaan ku qoran luuqad kasta oo barnaamij ah. Qalabka Emscripten waxa loo isticmaali karaa in lagu ururiyo WebAssembly. Si loo turjumo WebAssembly koodka mashiinka ee goobta hadda jirta, waxay taageertaa isku xirka dhabarka dambe ee isku dubaridka ee kala duwan (Singlepass, Cranelift, LLVM) iyo matoorada (adoo isticmaalaya JIT ama jiilka koodhka mashiinka).

Xakamaynta gelitaanka iyo la dhexgalka nidaamka waxa la bixiyaa iyadoo la isticmaalayo WASI (WebAssembly System Interface) API, kaas oo bixiya barmaamijyo is-dhexgal ah oo loogu shaqeeyo faylasha, saldhigyada iyo hawlaha kale ee uu bixiyo nidaamka hawlgalka. Codsiyada waxaa laga go'doomiyay nidaamka ugu muhiimsan ee jawi sandbox ah waxayna heli karaan kaliya shaqeynta lagu dhawaaqay (hab ammaan oo ku saleysan maaraynta kartida - ficilada mid kasta oo ka mid ah kheyraadka (faylalka, buug-gacmeedyada, saldhigyada, wicitaannada nidaamka, iwm.), codsiga waa in la siiyaa awoodaha ku haboon).

Si aad u bilowdo weelka WebAssembly, kaliya ku rakib Wasmer nidaamka runtime, kaas oo ku yimaada iyada oo aan la helin ku tiirsanaansho dibadeed ("curl https://get.wasmer.io -sSfL | sh"), oo socodsii faylka lagama maarmaanka ah ("wasmer test.wasm" ). Barnaamijyada waxaa loo qaybiyaa qaab modules WebAssembly caadiga ah, kaas oo lagu maarayn karo iyadoo la isticmaalayo maareeyaha xirmada WAPM. Wasmer sidoo kale waxaa loo heli karaa maktabad ahaan loo isticmaali karo in lagu dhejiyo koodhka WebAssembly gudaha Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir, iyo Java.

Madalku wuxuu kuu ogolaanayaa inaad gaadho waxqabadka fulinta codsiga ee u dhow shirarka waddaniga ah. Isticmaalka Matoorka Shayga Dhaladka ah ee moduleka WebAssembly, waxaad soo saari kartaa koodka mashiinka ("wasmer compile -native" si aad u soo saarto .so, .dylib iyo .dll shayga hore loo diyaariyey), kaas oo u baahan wakhtiga ugu yar si uu u shaqeeyo, laakiin wuxuu hayaa dhammaan go'doominta sanduuqa ciid. Astaamaha. Waa suurtogal in lagu bixiyo barnaamijyo hore loo soo ururiyey oo leh Wasmer-ku-dhismay. Rust API iyo Wasm-C-API waxaa loo bixiyaa abuurista ku-darka iyo kordhinta.

Isbeddel weyn oo ku yimid nambarka nooca Wasmer wuxuu la xiriiraa hordhaca isbeddellada aan ku habboonayn ee API-ga gudaha, taas oo, sida ay qabaan horumariyayaashu, ma saameyn doonaan 99% isticmaaleyaasha madal. Waxa ka mid ah isbeddelada jebiya iswaafajinta, waxa kale oo jira isbeddelka qaabka qaybaha Wasm-ka ee taxanaha ah (Modules-ka si taxane ah Wasmer 1.0 looma isticmaali doono Wasmer 2.0). Isbeddellada kale:

  • Taageerada tilmaamaha SIMD (Hal-u-barashada, Xogta Badan), taasoo u oggolaanaysa isbarbardhigga hawlaha xogta. Meelaha isticmaalka SIMD uu si weyn u wanaajin karo waxqabadka waxaa ka mid ah barashada mashiinka, codeynta iyo dejinta muuqaalka, habeynta muuqaalka, jilidda habka jireed, iyo wax-is-dabamarinta garaafyada.
  • Taageerada noocyada tixraaca, u oggolaanaya modules Wasm inay galaan macluumaadka qaybaha kale ama deegaanka hoose.
  • Waxqabad la taaban karo ayaa la sameeyay. Xawaaraha runtime LLVM oo leh tirooyinka dhibcaha sabbaynaya ayaa lagu kordhiyey ku dhawaad ​​50%. Wicitaannada shaqada ayaa si weyn loo dardargeliyay iyadoo la dhimay xaaladaha u baahan gelitaanka kernel-ka. Waxqabadka curiyaha koodhka Cranelift ayaa la kordhiyay 40%. Wakhtiga kala saarista xogta oo la dhimay.
    Wasmer 2.0, qalab loogu talagalay abuurista codsiyada ku salaysan WebAssembly, ayaa diyaar ah
    Wasmer 2.0, qalab loogu talagalay abuurista codsiyada ku salaysan WebAssembly, ayaa diyaar ah
  • Si aad si sax ah u muujiso nuxurka, magacyada matoorada waa la bedelay: JIT → Universal, Native → Dylib (Library Dynamic), Faylka Shayga → StaticLib (Maktabadda Joogta ah).

Source: opennet.ru

Add a comment