Wasmer 3.0, he kete taputapu mo te hanga i nga tono a-WebAssembly, e waatea ana

Ko te tuatoru o nga tukunga nui o te kaupapa Wasmer kua whakauruhia, e whakawhanake ana i te wa mahi mo te whakahaere i nga waahanga WebAssembly ka taea te whakamahi ki te hanga i nga tono mo te ao katoa ka taea te whakahaere i runga i nga punaha whakahaere rereke, me te mahi i te waehere kore pono i roto i te wehe. Kua tuhia te waehere kaupapa ki Rust ka tohatohahia i raro i te raihana MIT.

Ko te kaha ki te whakahaere i te tono kotahi i runga i nga papaaho maha ka tutuki ma te whakahiato waehere ki roto i te waehere takawaenga WebAssembly taumata-iti, ka taea te whakahaere i runga i tetahi OS, ka whakauruhia ranei ki roto i nga kaupapa i etahi atu reo hotaka. Ko nga kaupapa he ipu mama e whakahaere ana i te WebAssembly pseudocode. Ko enei ipu karekau e herea ki te punaha whakahaere ka taea te whakauru i nga waehere i tuhia tuatahitia ki roto i tetahi reo hotakataka. Ka taea te whakamahi i te kete taputapu Emscripten ki te whakahiato ki te WebAssembly. Hei whakamaori i te WebAssembly ki te waehere miihini o te papaaho o naianei, ka tautokohia e ia te hononga o nga momo whakahiato whakahiato (Singlepass, Cranelift, LLVM) me nga miihini (ma te whakamahi JIT me te whakaputa tohu miihini).

Ka wehea nga tono mai i te punaha matua i roto i te taiao pouaka kirikiri ka whai waahi noa ki nga mahi kua whakapuakina (he tikanga haumaru i runga i te whakahaerenga kaha - mo nga mahi me ia o nga rauemi (nga konae, nga raarangi, nga turanga, nga waea punaha, me era atu), te Ko te tono me hoatu nga mana e tika ana). Ka whakaratohia te mana uru me te taunekeneke ki te punaha ma te whakamahi i te WASI (WebAssembly System Interface) API, e whakarato ana i nga atanga papatono mo te mahi me nga konae, nga turanga me etahi atu mahi e whakaratohia ana e te punaha whakahaere.

Ma te papaahi ka taea e koe te whakatutuki i nga mahi whakahaere tono tata ki nga huihuinga taketake. Ma te whakamahi i te Miihini Ahanoa Maori mo te waahanga WebAssembly, ka taea e koe te whakaputa waehere miihini ("wasmer compile -native" ki te whakaputa i nga konae ahanoa .so, .dylib me .dll), he iti noa te waa whakahaere hei whakahaere, engari ka mau tonu i te wehenga kirikiri katoa. āhuatanga. Ka taea te tuku i nga kaupapa kua whakahiatohia me te Wasmer i roto. Ko te Rust API me te Wasm-C-API ka tukuna mo te hanga taapiri me nga taapiri.

Hei whakarewa i tetahi ipu WebAssembly, whakauruhia a Wasmer ki te punaha whakahaere, ka puta mai me te kore e whakawhirinaki ki waho ("curl https://get.wasmer.io -sSfL | sh"), ka whakahaere i te konae e tika ana ("wasmer test.wasm" ). Ka tohatohahia nga papatono i roto i te ahua o nga waahanga WebAssembly auau, ka taea te whakahaere ma te whakamahi i te kaiwhakahaere kete WAPM. Kei te waatea ano a Wasmer hei whare pukapuka ka taea te whakamahi ki te whakauru i te waehere WebAssembly ki roto i nga kaupapa Rust, C/C++, C#, D, Python, JavaScript, Haere, PHP, Ruby, Elixir, me Java.

Nga huringa nui i Wamer 3.0:

  • Kua taapirihia te kaha ki te hanga i nga konae ka taea te whakahaere mo tetahi papaaho. Ko te whakahau "wasmer create-exe" kua oti te hoahoa ano ki te huri i tetahi konae waehere takawaenga WebAssembly ki roto i nga mahi whakahaere mo te Linux, Windows, me te macOS ka taea te whakahaere me te kore e whakauru i a Wasmer ake.
  • Ka taea te whakarewa i nga kohinga WAPM kei roto i te raarangi wapm.io ma te whakamahi i te whakahau "wasmer run". Hei tauira, ko te whakahaere i te "wasmer run python/python" ka tango i te kete python mai i te wapm.io repository ka whakahaere.
  • Ko te Wasmer Rust API kua oti te hoahoa ano, ka huri i te ahua o te mahi me te mahara me te whakarato i te kaha ki te tiaki i nga taonga Wasm i roto i te hanganga Toa. He hangahanga MemoryView hou e taea ai te panui me te tuhi raraunga ki te waahi mahara rarangi.
  • Kua whakatinanahia he huinga o nga waahanga wasmer-js hei whakahaere i a Wasmer i roto i te tirotiro paetukutuku me te taunekeneke ki a ia mai i te JavaScript ma te whakamahi i te whare pukapuka wasm-bindgen. I roto i ona kaha, ka rite te wasmer-js ki nga waahanga wasmer-sys i hangaia hei whakahaere i a Wasmer i runga i nga punaha whakahaere.
  • Kua whakangwarihia nga miihini. Engari i nga miihini motuhake mo te JIT, te hono hihiri me te hono pateko (Universal, Dylib, StaticLib), kua tukuna inaianei tetahi miihini noa, a ko te uta me te penapena waehere kei te whakahaere i te taumata o te whakatakoto i nga tawhā.
  • Hei whakakore i nga taonga toi, ka whakamahia te anga rkyv, e whakarite ana i te mahi i roto i te aratau-kore, i.e. e kore e hiahiatia he toha maharatanga taapiri me te mahi whakamaaramatanga ma te whakamahi i te parepare i tukuna tuatahi. Ko te whakamahinga o rkyv kua tino piki ake te tere whakaoho.
  • Kua pai ake te whakahiato kotahi-pass Singlepass, me te taapiri i te tautoko mo nga mahi uara-maha, kua pai ake te pono, me te tautoko taapiri mo nga papa whakahaere motuhake.
  • Kua pai ake te whakatinanatanga o te WASI (WebAssembly System Interface) API. Ko nga raruraru kei roto i te atanga rorohiko WASI mo te mahi me te punaha konae kua whakatauhia. Ko nga momo o roto kua hoahoatia ano ma te whakamahi i te WAI (WebAssembly Interfaces), e taea ai te raupapa o nga ahuatanga hou a meake nei.

Source: opennet.ru

Tāpiri i te kōrero