Wasmer 3.0, verkfærasett til að byggja upp forrit sem byggjast á WebAssembly, er fáanlegt

Þriðja stóra útgáfan af Wasmer verkefninu er kynnt, sem þróar keyrslutíma til að keyra WebAssembly einingar sem hægt er að nota til að búa til alhliða forrit sem geta keyrt á mismunandi stýrikerfum, sem og til að keyra ótraust kóða í einangrun. Verkefniskóðinn er skrifaður í Rust og er dreift undir MIT leyfinu.

Hæfni til að keyra eitt forrit á mismunandi kerfum er veitt með því að setja saman kóða í lágstigs WebAssembly millikóða, sem getur keyrt á hvaða stýrikerfi sem er eða verið felldur inn í forrit á öðrum forritunarmálum. Forritin eru léttir ílát sem keyra WebAssembly gervikóða. Þessir gámar eru ekki bundnir við stýrikerfið og geta innihaldið kóða sem upphaflega var skrifaður á hvaða forritunarmáli sem er. Hægt er að nota Emscripten verkfærakistuna til að setja saman í WebAssembly. Til að þýða WebAssembly yfir í vélakóða núverandi vettvangs styður það tengingu ýmissa gagnasafnsins (Singlepass, Cranelift, LLVM) og véla (með því að nota JIT eða vélkóðaframleiðslu).

Forrit eru einangruð frá aðalkerfinu í sandkassaumhverfi og hafa aðeins aðgang að yfirlýstum virkni (öryggiskerfi sem byggir á getustjórnun - fyrir aðgerðir með hverju tilföngum (skrár, möppur, innstungur, kerfissímtöl osfrv.), umsókn verður að hafa viðeigandi vald). Aðgangsstýring og samskipti við kerfið eru veitt með því að nota WASI (WebAssembly System Interface) API, sem veitir forritunarviðmót til að vinna með skrár, innstungur og aðrar aðgerðir sem stýrikerfið býður upp á.

Vettvangurinn gerir þér kleift að ná frammistöðu í framkvæmd forrita nálægt innfæddum samsetningum. Með því að nota Native Object Engine fyrir WebAssembly eininguna geturðu búið til vélkóða („wasmer compile -native“ til að búa til forsamstæðar .so, .dylib og .dll hlutaskrár), sem krefst lágmarks keyrslutíma til að keyra, en heldur allri sandkassaeinangruninni. eiginleikar. Það er hægt að útvega forsamsett forrit með innbyggðum Wasmer. Rust API og Wasm-C-API eru í boði til að búa til viðbætur og viðbætur.

Til að ræsa WebAssembly gám skaltu bara setja Wasmer í keyrslukerfið, sem kemur án utanaðkomandi ósjálfstæðis ("curl https://get.wasmer.io -sSfL | sh") og keyra nauðsynlega skrá ("wasmer test.wasm" ). Forritum er dreift í formi venjulegra WebAssembly eininga, sem hægt er að stjórna með WAPM pakkastjóranum. Wasmer er einnig fáanlegt sem bókasafn sem hægt er að nota til að fella WebAssembly kóða inn í Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir og Java forrit.

Helstu breytingar á Wasmer 3.0:

  • Bætti við getu til að búa til innfæddar keyranlegar skrár fyrir hvaða vettvang sem er. „wasmer create-exe“ skipunin hefur verið algjörlega endurhönnuð til að umbreyta WebAssembly millikóðaskrá í sjálfstætt keyrsluefni fyrir Linux, Windows og macOS palla sem geta keyrt án þess að setja upp Wasmer sjálft.
  • Það er hægt að ræsa WAPM pakka sem staðsettir eru í wapm.io skránni með því að nota „wasmer run“ skipunina. Til dæmis, að keyra "wasmer run python/python" mun hlaða niður python pakkanum frá wapm.io geymslunni og keyra hann.
  • Wasmer Rust API hefur verið algjörlega endurhannað, breytt vinnustílnum með minni og gefur möguleika á að vista Wasm hluti á öruggan hátt í verslunarskipulaginu. Nýtt MemoryView skipulag hefur verið lagt til sem gerir kleift að lesa og skrifa gögn á línulegt minnissvæði.
  • Sett af wasmer-js íhlutum hefur verið útfært til að keyra Wasmer í vafra og hafa samskipti við hann frá JavaScript með wasm-bindgen bókasafninu. Í getu sinni samsvarar wasmer-js wasmer-sys íhlutunum sem hannaðir eru til að keyra Wasmer á venjulegum stýrikerfum.
  • Vélar hafa verið einfaldaðar. Í stað aðskildra véla fyrir JIT, kraftmikla og truflaða tengingu (Universal, Dylib, StaticLib), er nú boðið upp á eina sameiginlega vél og hleðslu og vistun kóða er stjórnað á því stigi að stilla færibreytur.
  • Til að deserialize artifacts er notað rkyv ramma sem tryggir virkni í núllafritunarham, þ.e. sem krefst ekki viðbótar minnisúthlutunar og framkvæmir afserialization eingöngu með því að nota upphaflega biðminni. Notkun rkyv hefur aukið ræsingarhraða verulega.
  • Singlepass einhliða þýðandinn hefur verið endurbættur og bætti við stuðningi við fjölgilda aðgerðir, bættan áreiðanleika og bætt við stuðningi við ramma meðhöndlunar undantekninga.
  • Bætt útfærsla á WASI (WebAssembly System Interface) API. Vandamál í WASI hugbúnaðarviðmóti til að vinna með skráarkerfið hafa verið leyst. Innri gerðir hafa verið endurhannaðar með WAI (WebAssembly Interfaces), sem mun gera röð nýrra eiginleika kleift í framtíðinni.

Heimild: opennet.ru

Bæta við athugasemd