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

Siideynta saddexaad ee ugu weyn ee mashruuca Wasmer ayaa la soo bandhigay, kaas oo horumariya runtime ee fulinta modules WebAssembly kaas oo loo isticmaali karo in lagu abuuro codsiyada caalamiga ah ee ku shaqeyn kara nidaamyada kala duwan ee hawlgalka, iyo sidoo kale in lagu fuliyo koodka aan la aamini karin ee goonida ah. Xeerka mashruuca wuxuu ku qoran yahay Rust waxaana lagu qaybiyaa shatiga MIT.

Awoodda lagu socodsiiyo hal codsi oo ku saabsan aalado kala duwan ayaa lagu bixiyaa iyadoo la uruurinayo koodka koodka dhexe ee WebAssembly heerka hoose, kaas oo ku shaqeyn kara OS kasta ama lagu dhejin karo barnaamijyada luqadaha kale ee barnaamijyada. 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).

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). 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.

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.

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.

Isbeddellada waaweyn ee Wasmer 3.0:

  • Waxaa lagu daray awoodda lagu abuurayo faylal la fulin karo hooyo madal kasta. Amarka "wasmer create-exe" ayaa gabi ahaanba dib loo habeeyay si loogu badalo faylka koodhka dhexe ee WebAssembly si loo fuliyo hawlo iskood u shaqeeya oo Linux, Windows, iyo macOS ah kuwaas oo socon kara iyada oo aan la rakibin Wasmer laftiisa.
  • Waa suurtagal in la bilaabo xirmooyinka WAPM ee ku yaal buugga wapm.io iyadoo la adeegsanayo amarka "wasmer run". Tusaale ahaan, orodka "wasmer run python/python" wuxuu ka soo dejisan doonaa xirmada Python kaydka wapm.io oo uu maamuli doonaa.
  • Wasmer Rust API si buuxda ayaa dib loo habeeyey, iyadoo la beddelay qaabka lagu shaqeeyo xusuusta iyo bixinta awoodda si badbaado leh loo badbaadiyo walxaha Wasm ee qaab dhismeedka Bakhaarka. Qaab-dhismeedka cusub ee MemoryView ayaa la soo jeediyay kaas oo u oggolaanaya akhrinta iyo qorista xogta meelaha xusuusta tooska ah.
  • Qayb ka mid ah qaybaha wasmer-js ayaa la hirgeliyay si ay Wasmer ugu socodsiiso biraawsarkaaga oo ay ula falgalaan JavaScript iyada oo la adeegsanayo maktabadda wasm-bindgen. Awoodeeda, wasmer-js waxay u dhigantaa qaybaha wasmer-sys ee loogu talagalay inay ku socodsiiyaan Wasmer nidaamyada hawlgalka caadiga ah.
  • Matoorada waa la fududeeyay Halkii matoorada kala duwan ee JIT, firfircooni iyo isku xirka joogtada ah (Universal, Dylib, StaticLib), hal matoor caadi ah ayaa hadda la bixiyaa, iyo dejinta iyo koodhka kaydinta ayaa lagu xakameynayaa heerka dejinta.
  • Si loo kala saaro artifacts, qaabka rkyv ayaa la isticmaalaa, kaas oo hubinaya hawlgalka qaabka eber-koobiga, i.e. Kaas oo aan u baahnayn qoondaynta xusuusta dheeraadka ah oo fulinaysa kala-saarid kaliya iyadoo la adeegsanayo kaydka hore ee la bixiyay. Isticmaalka rkyv ayaa si weyn u kordhiyey xawaaraha bilowga.
  • Isku-duwaha hal-pass Singlepass waa la hagaajiyay, isagoo ku daray taageerada hawlaha qiimaha badan, la wanaajiyay isku halaynta, iyo ku daray taageerada xirmooyinka maaraynta ka reeban.
  • Hirgelinta la hagaajiyay ee WASI (WebAssembly System Interface) API. Dhibaatooyinka ku jira interface software WASI ee la shaqaynta nidaamka faylka waa la xalliyey. Noocyada gudaha ayaa dib loo qaabeeyey iyadoo la isticmaalayo WAI (WebAssembly Interfaces), kaas oo awood u siin doona taxane cusub oo cusub mustaqbalka.

Source: opennet.ru

Add a comment