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

Wasmer verkefnið hefur gefið út aðra stóra útgáfu sína og þ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.

Færanleika er náð með því að setja saman forritakóða í lágstigs WebAssembly millikóða, sem getur keyrt á hvaða stýrikerfi sem er eða verið felld 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).

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

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.

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.

Veruleg breyting á útgáfunúmeri Wasmer tengist innleiðingu ósamrýmanlegra breytinga á innri API, sem, samkvæmt hönnuðunum, mun ekki hafa áhrif á 99% notenda pallsins. Meðal breytinga sem brjóta eindrægni er einnig breyting á sniði Wasm eininga í röð (einingum sem settar eru í raðnúmer í Wasmer 1.0 verður ekki hægt að nota í Wasmer 2.0). Aðrar breytingar:

  • Stuðningur við SIMD (Single Instruction, Multiple Data) leiðbeiningar, sem gerir samhliða gagnaaðgerðum kleift. Svæði þar sem notkun SIMD getur bætt afköst verulega eru vélanám, kóðun og afkóðun myndbands, myndvinnsla, líkamlegt ferli eftirlíkingar og grafíkvinnsla.
  • Stuðningur við viðmiðunargerðir, sem gerir Wasm einingum kleift að fá aðgang að upplýsingum í öðrum einingum eða í undirliggjandi umhverfi.
  • Verulegar hagræðingar hafa verið gerðar. Hraði LLVM keyrslutíma með flottölum hefur verið aukinn um það bil 50%. Aðgerðarköllum hefur verið hraðað verulega með því að draga úr aðstæðum sem krefjast aðgangs að kjarnanum. Afköst kranalyftukóðarafalls hafa verið aukin um 40%. Minni tími afserialization gagna.
    Wasmer 2.0, verkfærasett til að byggja upp forrit sem byggjast á WebAssembly, er fáanlegt
    Wasmer 2.0, verkfærasett til að byggja upp forrit sem byggjast á WebAssembly, er fáanlegt
  • Til að endurspegla kjarnann betur hefur nöfnum vélanna verið breytt: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

Heimild: opennet.ru

Bæta við athugasemd