Wasmer 2.0, e Toolkit fir Uwendungen ze kreéieren baséiert op WebAssembly, ass verfügbar

De Wasmer Projet huet seng zweet grouss Verëffentlechung verëffentlecht, eng Runtime entwéckelt fir WebAssembly Moduler auszeféieren, déi benotzt kënne ginn fir universell Applikatiounen ze kreéieren déi op verschiddene Betribssystemer lafen kënnen, wéi och fir net vertraute Code an Isolatioun ze lafen. De Projet Code ass a Rust geschriwwen a gëtt ënner der MIT Lizenz verdeelt.

Portabilitéit gëtt erreecht andeems Applikatiounscode an Low-Level WebAssembly Zwëschencode kompiléiert gëtt, deen op all OS lafen kann oder a Programmer an anere Programméierungssproochen agebaut ginn. D'Programmer si liicht Behälter déi WebAssembly Pseudocode lafen. Dës Behälter sinn net un de Betribssystem gebonnen a kënne Code enthalen déi ursprénglech an all Programméierungssprooch geschriwwe gouf. Den Emscripten Toolkit kann benotzt ginn fir op WebAssembly ze kompiléieren. Fir WebAssembly a Maschinncode vun der aktueller Plattform z'iwwersetzen, ënnerstëtzt se d'Verbindung vu verschiddene Kompiléierungsbackends (Singlepass, Cranelift, LLVM) a Motoren (mat JIT oder Maschinncode Generatioun).

Zougangskontroll an Interaktioun mam System gëtt mat der WASI (WebAssembly System Interface) API zur Verfügung gestallt, déi Programméierungsinterfaces ubitt fir mat Dateien, Sockets an aner Funktiounen vum Betribssystem ze schaffen. Uwendungen sinn aus dem Haaptsystem an engem Sandbox Ëmfeld isoléiert an hunn Zougang nëmmen zu der deklaréierter Funktionalitéit (e Sécherheetsmechanismus baséiert op Kapazitéitsmanagement - fir Aktiounen mat jiddereng vun de Ressourcen (Dateien, Verzeichnisser, Sockets, System Uruff, etc.), Applikatioun muss déi entspriechend Muechten kréien).

Fir e WebAssembly Container ze lancéieren, installéiere just Wasmer am Runtime System, deen ouni extern Ofhängegkeete kënnt ("curl https://get.wasmer.io -sSfL | sh"), a lafen déi néideg Datei ("wasmer test.wasm" ). Programmer ginn a Form vu reguläre WebAssembly Moduler verdeelt, déi mat dem WAPM Package Manager verwalt kënne ginn. Wasmer ass och verfügbar als Bibliothéik déi benotzt ka ginn fir WebAssembly Code a Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir a Java Programmer z'integréieren.

D'Plattform erlaabt Iech Applikatioun Ausféierung Leeschtung no bei gebierteg Versammlungen ze erreechen. Mat der Native Object Engine fir de WebAssembly Modul kënnt Dir Maschinncode generéieren ("wasmer compile -native" fir virkompiléiert .so, .dylib an .dll Objektdateien ze generéieren), déi minimal Runtime erfuerdert fir ze lafen, awer behält all Sandbox Isolatioun Eegeschaften. Et ass méiglech virkompiléiert Programmer mat agebaute Wasmer ze liwweren. De Rust API a Wasm-C-API ginn ugebueden fir Add-ons an Extensiounen ze kreéieren.

Eng bedeitend Ännerung vun der Versiounsnummer vu Wasmer ass mat der Aféierung vun inkompatibelen Ännerungen un der interner API verbonnen, déi, laut den Entwéckler, net 99% vun de Plattform Benotzer beaflossen. Ënnert den Ännerungen déi d'Kompatibilitéit briechen, gëtt et och eng Ännerung am Format vun de serialiséierte Wasm Moduler (Module serialiséiert am Wasmer 1.0 kënnen net am Wasmer 2.0 benotzt ginn). Aner Ännerungen:

  • Ënnerstëtzung fir SIMD (Single Instruction, Multiple Data) Instruktiounen, erlaabt Paralleliséierung vun Datenoperatiounen. Beräicher an deenen d'Benotzung vun SIMD d'Performance wesentlech verbesseren kann, enthalen Maschinnléieren, Videokodéierung an Dekodéierung, Bildveraarbechtung, kierperlech Prozesssimulatioun a Grafikmanipulatioun.
  • Ënnerstëtzung fir Referenztypen, erlaabt Wasm Moduler Zougang zu Informatioun an anere Moduler oder an der Basisdaten Ëmfeld.
  • Wichteg Leeschtungsoptimiséierunge goufen gemaach. D'Geschwindegkeet vun der LLVM Runtime mat Floating Point Zuelen ass ëm ongeféier 50% eropgaang. Funktiounsruffe si wesentlech beschleunegt ginn andeems Situatiounen reduzéiert ginn, déi Zougang zum Kärel erfuerderen. Cranelift Code Generator Leeschtung ass ëm 40% erhéicht ginn. Reduzéiert Daten Deserialiséierung Zäit.
    Wasmer 2.0, e Toolkit fir Uwendungen ze kreéieren baséiert op WebAssembly, ass verfügbar
    Wasmer 2.0, e Toolkit fir Uwendungen ze kreéieren baséiert op WebAssembly, ass verfügbar
  • Fir d'Essenz méi genee ze reflektéieren, sinn d'Nimm vun de Motore geännert ginn: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

Source: opennet.ru

Setzt e Commentaire