E webatara isi mmalite nke atọ nke ọrụ Wasmer, nke na-emepụta oge ịgba ọsọ maka imezu modul WebAssembly nke enwere ike iji mepụta ngwa zuru ụwa ọnụ nke nwere ike na-agba ọsọ na sistemụ arụmọrụ dị iche iche, yana iji mebie koodu enweghị ntụkwasị obi na iche. Edere koodu oru ngo na Rust ma kesaa ya n'okpuru ikike MIT.
A na-enweta ikike ịme otu ngwa na ọtụtụ nyiwe site na ịchịkọta koodu n'ime koodu etiti WebAssembly dị ala, nke nwere ike ịgba ọsọ na OS ọ bụla ma ọ bụ tinye ya na mmemme na asụsụ mmemme ndị ọzọ. Mmemme bụ igbe dị fechaa na-agba WebAssembly pseudocode. Ejikọghị akpa ndị a na sistemụ arụmọrụ ma nwee ike ịgụnye koodu edeburu n'asụsụ mmemme ọ bụla. Enwere ike iji ngwa Emscripten chịkọta na WebAssembly. Iji sụgharịa WebAssembly n'ime koodu igwe nke ikpo okwu dị ugbu a, ọ na-akwado njikọ nke azụ azụ dị iche iche (Singlepass, Cranelift, LLVM) na injin (iji JIT ma ọ bụ ọgbọ koodu igwe).
Ngwa dịpụrụ adịpụ na isi sistemụ na gburugburu igbe igbe ma nwee ike nweta naanị ọrụ ekwuputara (usoro nchekwa dabere na njikwa ikike - maka omume na akụrụngwa ọ bụla (faịlụ, akwụkwọ ndekọ aha, sọks, oku sistemụ, wdg), a ghaghị inye ngwa ngwa ike kwesịrị ekwesị). A na-enye njikwa ohere na mmekọrịta ya na sistemụ site na iji WASI (WebAssembly System Interface) API, nke na-enye oghere mmemme maka ịrụ ọrụ na faịlụ, oghere na ọrụ ndị ọzọ nke sistemụ arụmọrụ nyere.
Ikpo okwu na-enye gị ohere ịrụ ọrụ mmezu ngwa dị nso na nke ọgbakọ obodo. Iji Native Object Engine for a WebAssembly modul, ị nwere ike ịmepụta koodu obodo ("wasmer compile -native" maka ịmepụta precompiled .so, .dylib na .dll ihe faịlụ), nke na-achọ obere oge iji na-agba ọsọ, ma na-ejigide atụmatụ niile nke. mwepu sandbox. Ọ ga-ekwe omume ịnye mmemme achịkọtara na Wasmer arụnyere n'ime ya. A na-enye Rust API na Wasm-C-API maka ịmepụta mgbakwunye na mgbakwunye.
Iji malite akpa WebAssembly, ọ ga-ezuru iji wụnye Wasmer oge ojiri gaa na sistemụ, nke na-abịa na-enweghị ịdabere na mpụga (“curl https://get.wasmer.io -sSfL | sh”), wee mee faịlụ dị mkpa (“wasmer test). .wasm"). A na-ekesa mmemme n'ụdị modul WebAssembly nkịtị, nke enwere ike ijikwa njikwa ngwugwu WAPM. Wasmer dịkwa ka ọbá akwụkwọ nke enwere ike iji tinye koodu WebAssembly na Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir, na Java.
Nnukwu mgbanwe na Wasmer 3.0:
- Agbakwunyela ikike ịmepụta ihe ndị e ji eme ihe n'asụsụ maka ikpo okwu ọ bụla. E megharịrị iwu "wasmer create-exe" kpamkpam, nke na-enye gị ohere ịtụgharị faịlụ nwere koodu etiti WebAssembly ka ọ bụrụ ihe ndị e ji eme ihe n'onwe ya maka ikpo okwu ụfọdụ. Linux, Windows и macOS, nke nwere ike ịrụ ọrụ na-etinyeghị Wasmer n'onwe ya.
- Ọ ga-ekwe omume ịmalite ngwungwu WAPM dị na akwụkwọ ndekọ aha wapm.io site na iji iwu "wasmer run". Dịka ọmụmaatụ, ịgba ọsọ "wasmer run python/python" ga-ebudata ngwugwu Python na ebe nchekwa wapm.io wee mee ya.
- Emezigharịrị Wasmer Rust API kpamkpam, na-agbanwe ụdị nke iji ebe nchekwa na-arụ ọrụ yana inye ikike ịchekwa ihe Wasm n'enweghị nsogbu na nhazi ụlọ ahịa. Atụpụtala nhazi MemoryView ọhụrụ nke na-enye ohere ịgụ na ide data na mpaghara ebe nchekwa ahịrị.
- E mejuputala usoro nke wasmer-js iji mee Wasmer na ihe nchọgharị weebụ wee soro ya na-emekọrịta ihe site na Javascript site na iji ọba akwụkwọ wasm-bindgen. N'ime ike ya, wasmer-js dabara na akụrụngwa wasmer-sys emebere iji na-agba Wasmer na sistemu arụ ọrụ oge niile.
- Emeela ka igwe dị mfe. Kama igwe dị iche iche maka JIT, njikọ siri ike na static (Universal, Dylib, StaticLib), a na-enye otu injin nkịtị ugbu a, a na-achịkwa ntinye na koodu nchekwa na ọkwa ntọala ntọala.
- Iji mebie arịa dị iche iche, a na-eji usoro rkyv, nke na-eme ka ọ rụọ ọrụ na ọnọdụ efu, i.e. nke na-achọghị ntinye ebe nchekwa agbakwunyere ma na-arụ ọrụ deserialization naanị site na iji ihe nchekwa enyere na mbụ. Ojiji nke rkyv abawanyela ọsọ mmalite nke ukwuu.
- Ewelitela mkpokọta otu ngafe Singlepass, na-agbakwunye nkwado maka ọrụ bara uru dị iche iche, ntụkwasị obi emelitere, yana nkwado agbakwunyere maka okpokolo agba ewepu.
- Mmelite nke WASI (WebAssembly System Interface) API. E doziela nsogbu dị na ngwa ngwa WASI maka ịrụ ọrụ na sistemụ faịlụ. Emezigharị ụdị ime ime site na iji WAI (WebAssembly Interfaces), nke ga-eme ka usoro atụmatụ ọhụrụ dị n'ọdịniihu.
isi: opennet.ru
