Mae Wasmer 2.0, pecyn cymorth ar gyfer adeiladu cymwysiadau sy'n seiliedig ar WebCynulliad, ar gael

Mae prosiect Wasmer wedi rhyddhau ei ail ddatganiad mawr, gan ddatblygu amser rhedeg ar gyfer gweithredu modiwlau WebAssembly y gellir eu defnyddio i greu cymwysiadau cyffredinol a all redeg ar wahanol systemau gweithredu, yn ogystal ag i redeg cod di-ymddiried ar ei ben ei hun. Mae cod y prosiect wedi'i ysgrifennu yn Rust ac yn cael ei ddosbarthu o dan y drwydded MIT.

Cyflawnir hygludedd trwy grynhoi cod cymhwysiad i god canolradd lefel isel WebAssembly, a all redeg ar unrhyw OS neu gael ei ymgorffori mewn rhaglenni mewn ieithoedd rhaglennu eraill. Mae'r rhaglenni yn gynwysyddion ysgafn sy'n rhedeg pseudocode WebAssembly. Nid yw'r cynwysyddion hyn wedi'u clymu i'r system weithredu a gallant gynnwys cod a ysgrifennwyd yn wreiddiol mewn unrhyw iaith raglennu. Gellir defnyddio pecyn cymorth Emscripten i'w lunio i WebAssembly. Er mwyn trosi WebAssembly yn god peiriant y platfform presennol, mae'n cefnogi cysylltiad gwahanol gefnau casglu (Singlepass, Cranelift, LLVM) a pheiriannau (gan ddefnyddio JIT neu gynhyrchu cod peiriant).

Darperir rheolaeth mynediad a rhyngweithio Γ’'r system gan ddefnyddio API WASI (Rhyngwyneb System WebAssembly), sy'n darparu rhyngwynebau rhaglennu ar gyfer gweithio gyda ffeiliau, socedi a swyddogaethau eraill a ddarperir gan y system weithredu. Mae cymwysiadau wedi'u hynysu o'r brif system mewn amgylchedd blwch tywod ac mae ganddynt fynediad yn unig at y swyddogaeth ddatganedig (mecanwaith diogelwch yn seiliedig ar reoli gallu - ar gyfer gweithredoedd gyda phob un o'r adnoddau (ffeiliau, cyfeirlyfrau, socedi, galwadau system, ac ati), y rhaid rhoi'r pwerau priodol i'r cais).

I lansio cynhwysydd WebAssembly, gosodwch Wasmer yn y system amser rhedeg, sy'n dod heb ddibyniaethau allanol (β€œcurl https://get.wasmer.io -sSfL | sh”), a rhedeg y ffeil angenrheidiol (β€œwasmer test.wasm” ). Dosberthir rhaglenni ar ffurf modiwlau WebAssembly rheolaidd, y gellir eu rheoli gan ddefnyddio rheolwr pecyn WAPM. Mae Wasmer hefyd ar gael fel llyfrgell y gellir ei defnyddio i fewnosod cod WebAssembly i raglenni Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir a Java.

Mae'r platfform yn caniatΓ‘u ichi gyflawni perfformiad gweithredu cymwysiadau yn agos at gynulliadau brodorol. Gan ddefnyddio'r Peiriant Gwrthrych Brodorol ar gyfer modiwl WebCynulliad, gallwch gynhyrchu cod peiriant (β€œwasmer compile -native” i gynhyrchu ffeiliau gwrthrych .so, .dylib a .dll wedi'u llunio ymlaen llaw), sy'n gofyn am ychydig o amser rhedeg i'w rhedeg, ond sy'n cadw'r holl ynysu blwch tywod Nodweddion. Mae'n bosibl cyflenwi rhaglenni wedi'u llunio ymlaen llaw gyda Wasmer adeiledig. Cynigir yr API Rust a Wasm-C-API ar gyfer creu ychwanegion ac estyniadau.

Mae newid sylweddol yn y rhif fersiwn o Wasmer yn gysylltiedig Γ’ chyflwyno newidiadau anghydnaws i'r API mewnol, na fydd, yn Γ΄l y datblygwyr, yn effeithio ar 99% o ddefnyddwyr y platfform. Ymhlith y newidiadau sy'n torri cydnawsedd, mae yna hefyd newid yn fformat modiwlau Wasm cyfresol (ni fydd modd defnyddio modiwlau cyfresol yn Wasmer 1.0 yn Wasmer 2.0). Newidiadau eraill:

  • Cefnogaeth i gyfarwyddiadau SIMD (Cyfarwyddyd Sengl, Data Lluosog), sy'n caniatΓ‘u cyfochri gweithrediadau data. Ymhlith y meysydd lle gall defnyddio SIMD wella perfformiad yn sylweddol mae dysgu peiriant, amgodio a datgodio fideo, prosesu delweddau, efelychu prosesau corfforol, a thrin graffeg.
  • Cefnogaeth ar gyfer mathau o gyfeirnod, gan ganiatΓ‘u i fodiwlau Wasm gael mynediad at wybodaeth mewn modiwlau eraill neu yn yr amgylchedd sylfaenol.
  • Mae optimeiddiadau perfformiad sylweddol wedi'u gwneud. Mae cyflymder amser rhedeg LLVM gyda niferoedd pwynt arnawf wedi cynyddu tua 50%. Mae galwadau ffwythiant wedi'u cyflymu'n sylweddol trwy leihau sefyllfaoedd sy'n gofyn am fynediad i'r cnewyllyn. Mae perfformiad generadur cod craen codi wedi cynyddu 40%. Llai o amser dad-gyfresi data.
    Mae Wasmer 2.0, pecyn cymorth ar gyfer adeiladu cymwysiadau sy'n seiliedig ar WebCynulliad, ar gael
    Mae Wasmer 2.0, pecyn cymorth ar gyfer adeiladu cymwysiadau sy'n seiliedig ar WebCynulliad, ar gael
  • Er mwyn adlewyrchu'r hanfod yn fwy cywir, mae enwau'r peiriannau wedi'u newid: JIT β†’ Universal, Native β†’ Dylib (Llyfrgell Ddeinamig), Ffeil Gwrthrych β†’ StaticLib (Llyfrgell Statig).

Ffynhonnell: opennet.ru

Ychwanegu sylw