Tha Wasmer 3.0, inneal airson tagraidhean stèidhichte air WebAssembly a thogail, ri fhaighinn

Tha an treas foillseachadh mòr de phròiseact Wasmer air a thoirt a-steach, a leasaicheas ùine ruith airson modalan WebAssembly a chuir an gnìomh a ghabhas cleachdadh gus tagraidhean uile-choitcheann a chruthachadh a dh’ fhaodas ruith air diofar shiostaman obrachaidh, a bharrachd air còd neo-earbsach a chuir an gnìomh leotha fhèin. Tha còd a’ phròiseict air a sgrìobhadh ann an Rust agus air a chuairteachadh fo chead MIT.

Tha comas air aon iarrtas a ruith air diofar àrd-ùrlaran air a thoirt seachad le bhith a’ cur ri chèile còd ann an còd eadar-mheadhanach WebAssembly aig ìre ìosal, a dh’ fhaodas ruith air OS sam bith no a bhith freumhaichte ann am prògraman ann an cànanan prògramaidh eile. Tha na prògraman nan soithichean aotrom a bhios a’ ruith pseudocode WebAssembly. Chan eil na soithichean sin ceangailte ris an t-siostam obrachaidh agus faodaidh iad còd a chaidh a sgrìobhadh an toiseach ann an cànan prògramadh sam bith a ghabhail a-steach. Faodar an inneal Emscripten a chleachdadh airson a chur ri chèile gu WebAssembly. Gus WebAssembly a thionndadh gu còd inneal an àrd-ùrlar gnàthach, bidh e a ’toirt taic do cheangal diofar backends cruinneachaidh (Singlepass, Cranelift, LLVM) agus einnseanan (a’ cleachdadh JIT no gineadh còd inneal).

Tha tagraidhean air an dealachadh bhon phrìomh shiostam ann an àrainneachd bogsa gainmhich agus chan eil cothrom aca ach air a’ ghnìomhachd ainmichte (inneal tèarainteachd stèidhichte air riaghladh comais - airson gnìomhan le gach goireas (faidhlichean, clàran, socaidean, fiosan siostaim, msaa). feumar na cumhachdan iomchaidh a thoirt don tagradh). Tha smachd ruigsinneachd agus eadar-obrachadh leis an t-siostam air a thoirt seachad a’ cleachdadh an WASI (WebAssembly System Interface) API, a bheir seachad eadar-aghaidh prògramadh airson a bhith ag obair le faidhlichean, socaidean agus gnìomhan eile a bheir an siostam obrachaidh seachad.

Leigidh an àrd-ùrlar leat coileanadh cur an gnìomh tagraidh a choileanadh faisg air co-chruinneachaidhean dùthchasach. Le bhith a’ cleachdadh an Einnsean Native Object airson modal WebAssembly, faodaidh tu còd inneil a ghineadh (“wasmer compile -native” gus faidhlichean nì ro-chruinnichte .so, .dylib agus .dll a ghineadh), a dh’ fheumas glè bheag de ùine ruith airson ruith, ach a chumas aonaranachd a’ bhogsa gainmhich gu lèir feartan. Tha e comasach prògraman ro-ullaichte a thoirt seachad le Wasmer togte. Tha an Rust API agus Wasm-C-API air an tabhann airson tuilleadan agus leudachadh a chruthachadh.

Gus inneal WebAssembly a chuir air bhog, dìreach stàlaich Wasmer anns an t-siostam runtime, a thig às aonais eisimeileachd bhon taobh a-muigh (“curl https://get.wasmer.io -sSfL | sh”), agus ruith am faidhle riatanach (“wasmer test.wasm” ). Tha prògraman air an cuairteachadh ann an cruth mhodalan cunbhalach WebAssembly, a dh’ fhaodar a riaghladh le bhith a’ cleachdadh manaidsear pacaid WAPM. Tha Wasmer cuideachd ri fhaighinn mar leabharlann a dh'fhaodar a chleachdadh gus còd WebAssembly a fhighe a-steach do phrògraman Rust, C / C ++, C #, D, Python, JavaScript, Go, PHP, Ruby, Elixir, agus Java.

Atharraichean mòra ann an Wasmer 3.0:

  • Chuir sinn ris a’ chomas air faidhlichean gnìomhachaidh dùthchasach a chruthachadh airson àrd-ùrlar sam bith. Chaidh an àithne “wasmer create-exe” ath-dhealbhadh gu tur gus faidhle còd eadar-mheadhanach WebAssembly a thionndadh gu so-ghnìomhan fèin-chumanta airson àrd-ùrlaran Linux, Windows, agus macOS as urrainn ruith gun a bhith a’ stàladh Wasmer fhèin.
  • Tha e comasach pasganan WAPM a chuir air bhog anns an eòlaire wapm.io a’ cleachdadh an àithne “wasmer run”. Mar eisimpleir, le bhith a’ ruith “wasmer run python/python” luchdaichidh e sìos am pasgan python bhon stòr wapm.io agus ruithidh e e.
  • Chaidh an Wasmer Rust API ath-dhealbhadh gu tur, ag atharrachadh an stoidhle a bhith ag obair le cuimhne agus a’ toirt seachad comas stuthan Wasm a shàbhaladh gu sàbhailte ann an structar an Stòr. Chaidh structar ùr MemoryView a mholadh a leigeas le bhith leughadh agus sgrìobhadh dàta gu raon cuimhne sreathach.
  • Chaidh seata de cho-phàirtean wasmer-js a chuir an gnìomh gus Wasmer a ruith ann am brabhsair lìn agus eadar-obrachadh leis bho JavaScript a’ cleachdadh an leabharlann wasm-bindgen. Anns na comasan aige, tha wasmer-js a ’freagairt ris na pàirtean wasmer-sys a chaidh an dealbhadh gus Wasmer a ruith air siostaman obrachaidh cunbhalach.
  • Tha einnseanan air an dèanamh nas sìmplidhe. An àite einnseanan fa leth airson JIT, ceangal fiùghantach agus statach (Universal, Dylib, StaticLib), tha aon einnsean cumanta a-nis air a thabhann, agus tha còd luchdachadh is sàbhalaidh fo smachd aig ìre suidheachadh nam paramadairean.
  • Gus artifacts a dhì-dhealbhadh, thathas a’ cleachdadh frèam rkyv, a nì cinnteach gu bheil e ag obair ann am modh leth-bhreac, i.e. nach eil feumach air riarachadh cuimhne a bharrachd agus a nì dì-shreathachadh a-mhàin a’ cleachdadh a’ bhufair a chaidh a thoirt seachad an toiseach. Tha cleachdadh rkyv air astar tòiseachaidh àrdachadh gu mòr.
  • Chaidh an inneal-cruinneachaidh aon-pas Singlepass a leasachadh, a’ cur taic ri gnìomhan ioma-luach, earbsachd nas fheàrr, agus taic a bharrachd airson frèamaichean làimhseachaidh eisgeachd.
  • Buileachadh nas fheàrr air API WASI (Eadar-aghaidh Siostam WebAssembly). Chaidh duilgheadasan ann an eadar-aghaidh bathar-bog WASI airson obrachadh leis an t-siostam faidhle fhuasgladh. Chaidh seòrsaichean a-staigh ath-dhealbhadh a’ cleachdadh WAI (WebAssembly Interfaces), a bheir comas do shreath de fheartan ùra san àm ri teachd.

Source: fosgailtenet.ru

Cuir beachd ann