Wasmer 2.0, in toolkit foar it bouwen fan WebAssembly-basearre applikaasjes, is beskikber

It Wasmer-projekt hat syn twadde grutte release frijlitten, it ûntwikkeljen fan in runtime foar it útfieren fan WebAssembly-modules dy't kinne wurde brûkt om universele applikaasjes te meitsjen dy't kinne rinne op ferskate bestjoeringssystemen, en ek om unfertroude koade yn isolaasje út te fieren. De projektkoade is skreaun yn Rust en wurdt ferspraat ûnder de MIT-lisinsje.

Portabiliteit wurdt berikt troch it kompilearjen fan applikaasjekoade yn WebAssembly tuskenlizzende koade op leech nivo, dy't kin rinne op elk OS of wurde ynbêde yn programma's yn oare programmeartalen. De programma's binne lichtgewicht konteners dy't WebAssembly pseudokoade útfiere. Dizze konteners binne net bûn oan it bestjoeringssysteem en kinne koade befetsje dy't oarspronklik skreaun is yn elke programmeartaal. De Emscripten toolkit kin brûkt wurde om te kompilearjen nei WebAssembly. Om WebAssembly oer te setten yn masinekoade fan it hjoeddeistige platfoarm, stipet it de ferbining fan ferskate kompilaasje-backends (Singlepass, Cranelift, LLVM) en motoren (mei JIT as generaasje fan masinekoade).

Tagongskontrôle en ynteraksje mei it systeem wurdt levere mei de WASI (WebAssembly System Interface) API, dy't programmearring ynterfaces leveret foar wurkjen mei bestannen, sockets en oare funksjes dy't troch it bestjoeringssysteem levere wurde. Applikaasjes wurde isolearre fan it haadsysteem yn in sânbakomjouwing en hawwe allinich tagong ta de ferklearre funksjonaliteit (in befeiligingsmeganisme basearre op kapasiteitsbehear - foar aksjes mei elk fan 'e boarnen (bestannen, mappen, sockets, systeemoproppen, ensfh.), oanfraach moat de passende foegen krije).

Om in WebAssembly-kontener te starten, ynstallearje gewoan Wasmer yn it runtime-systeem, dat komt sûnder eksterne ôfhinklikens ("curl https://get.wasmer.io -sSfL | sh"), en útfiere it nedige bestân ("wasmer test.wasm" ). Programma's wurde ferspraat yn 'e foarm fan reguliere WebAssembly-modules, dy't kinne wurde beheard mei de WAPM-pakketbehearder. Wasmer is ek beskikber as bibleteek dy't brûkt wurde kin om WebAssembly-koade yn Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir en Java-programma's yn te foegjen.

It platfoarm lit jo prestaasjes foar útfiering fan applikaasjes berikke tichtby lânseigen gearkomsten. Mei help fan de Native Object Engine foar de WebAssembly module, kinne jo generearje masine koade ("wasmer compile -native" te generearjen precompiled .so, .dylib en .dll objekt triemmen), dy't fereasket minimale runtime om te rinnen, mar behâldt alle sânbox isolaasje funksjes. It is mooglik foarôf kompilearre programma's te leverjen mei ynboude Wasmer. De Rust API en Wasm-C-API wurde oanbean foar it meitsjen fan tafoegings en tafoegings.

In wichtige feroaring yn it ferzjenûmer fan Wasmer is ferbûn mei de ynfiering fan ynkompatibele feroarings oan 'e ynterne API, dy't, neffens de ûntwikkelders, gjin ynfloed op 99% fan platfoarm brûkers. Under de wizigingen dy't kompatibiliteit brekke, is d'r ek in feroaring yn it formaat fan serialisearre Wasm-modules (modules serialisearre yn Wasmer 1.0 kinne net brûkt wurde yn Wasmer 2.0). Oare feroarings:

  • Stipe foar SIMD-ynstruksjes (Single Instruction, Multiple Data), wêrtroch parallelisaasje fan gegevensoperaasjes mooglik is. Gebieten wêryn it gebrûk fan SIMD de prestaasjes signifikant kin ferbetterje omfetsje masine learen, fideokodearjen en dekodearjen, byldferwurking, fysike prosessimulaasje, en grafyske manipulaasje.
  • Stipe foar referinsjetypen, wêrtroch Wasm-modules tagong krije ta ynformaasje yn oare modules of yn 'e ûnderlizzende omjouwing.
  • Wichtige prestaasjesoptimalisaasjes binne makke. De snelheid fan LLVM-runtime mei driuwende puntnûmers is ferhege mei sawat 50%. Funksjeoproppen binne signifikant fersneld troch it ferminderjen fan situaasjes dy't tagong hawwe ta de kernel. Cranelift code generator prestaasjes binne ferhege mei 40%. Fermindere gegevens deserialization tiid.
    Wasmer 2.0, in toolkit foar it bouwen fan WebAssembly-basearre applikaasjes, is beskikber
    Wasmer 2.0, in toolkit foar it bouwen fan WebAssembly-basearre applikaasjes, is beskikber
  • Om de essinsje krekter te reflektearjen, binne de nammen fan 'e motoren feroare: JIT → Universeel, Native → Dylib (Dynamyske biblioteek), Objektbestân → StaticLib (Statyske biblioteek).

Boarne: opennet.ru

Add a comment