Wasmer 2.0, verktyget för att skapa applikationer baserade pÄ WebAssembly, Àr nu tillgÀngligt

Den andra betydande utgÄvan av projektet Wasmer har slÀppts, som utvecklar en runtime för att köra WebAssembly-moduler. Den kan anvÀndas för att skapa universella applikationer som kan köras pÄ olika operativsystem samt för att utföra osÀker kod i en isolerad miljö. Projektets kod Àr skriven i Rust och distribueras under MIT-licensen.

BÀrbarhet sÀkerstÀlls genom kompilering av applikationskoden till lÄg nivÄ mellanliggande WebAssembly-kod, som kan köras pÄ vilket operativsystem som helst eller integreras i program skrivna pÄ andra programmeringssprÄk. Programmen fungerar som lÀtta containrar dÀr WebAssembly-pseudokod körs. Dessa containrar Àr oberoende av operativsystemet och kan inkludera kod som ursprungligen Àr skriven i vilket programmeringssprÄk som helst. Emscripten-verktygen kan anvÀndas för kompilering till WebAssembly. För att översÀtta WebAssembly till maskinkod för den aktuella plattformen stöds anslutning av olika kompilatorbakgrunder (Singlepass, Cranelift, LLVM) och motorer (anvÀndning av JIT eller generering av maskinkod).

Åtkomsthantering och interaktion med systemet möjliggörs genom API WASI (WebAssembly System Interface), som tillhandahĂ„ller programmeringsgrĂ€nssnitt för arbete med filer, socketar och andra funktioner som erbjuds av operativsystemet. Applikationerna Ă€r isolerade frĂ„n det underliggande systemet i en sandbox-miljö och har endast tillgĂ„ng till den specificerade funktionen (en sĂ€kerhetsmekanism baserad pĂ„ capability management — för Ă„tgĂ€rder med varje resurs (filer, kataloger, socketar, systemanrop etc.) mĂ„ste appen ha tilldelad rĂ€ttighet till dessa).

För att köra en WebAssembly-container rÀcker det med att installera runtime Wasmer i systemet, som levereras utan externa beroenden ("curl https://get.wasmer.io -sSfL | sh") och sedan köra den nödvÀndiga filen ("wasmer test.wasm"). Programmen distribueras i form av vanliga WebAssembly-moduler, som kan hanteras med paketförvaltaren WAPM. Wasmer finns ocksÄ som ett bibliotek som kan anvÀndas för att integrera WebAssembly-kod i program skrivna i Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir och Java.

Plattformen möjliggör att uppnĂ„ en prestanda för applikationskörning som liknar prestandan av inbyggda kompileringar. Genom Native Object Engine för WebAssembly-moduler kan maskinkod genereras ("wasmer compile —native" för att generera förkompilerade objektsfiler .so, .dylib och .dll), vilket krĂ€ver minimal runtime för körning, men behĂ„ller alla möjligheter för sandbox-isolering. För leverans av förkompilerade program finns inbyggd Wasmer. För att skapa tillĂ€gg och modifieringar erbjuds Rust API och Wasm-C-API.

Den betydande versionsÀndringen av Wasmer Àr kopplad till införandet av kompatibilitetsbrottande förÀndringar i det interna API:et, som utvecklarna hÀvdar inte kommer att pÄverka 99 % av plattformens anvÀndare. Bland de kompatibilitetsbrottande förÀndringarna nÀmns Àven förÀndringen av formatet för serialiserade Wasm-moduler (moduler som Àr serialiserade i Wasmer 1.0 kommer inte att kunna anvÀndas i Wasmer 2.0). Andra förÀndringar:

  • Stöd för SIMD-instruktioner (Single Instruction, Multiple Data) som möjliggör parallellisering av operationer över data. Inom omrĂ„den dĂ€r anvĂ€ndningen av SIMD kan avsevĂ€rt öka prestandan nĂ€mns maskininlĂ€rning, kodning och avkodning av video, bildbehandling, simulering av fysiska processer samt grafikhantverk.
  • Stöd för referenstyper som möjliggör att Wasm-moduler kan referera till information i andra moduler eller i den underliggande miljön.
  • Betydande prestandaoptimering har genomförts. Hastigheten för LLVM-runtime med flyttalsvĂ€rden har ökat med cirka 50 %. Funktionsanrop har accelererats avsevĂ€rt genom en minskning av situationer som krĂ€ver Ă„tkomst till kĂ€rnan. Prestandan hos kodgeneratorn Cranelift har ökat med 40 %. Tiden för deserialisering av data har minskat.
    Wasmer 2.0, verktyget för att skapa applikationer baserade pÄ WebAssembly, Àr nu tillgÀngligt
    Wasmer 2.0, verktyget för att skapa applikationer baserade pÄ WebAssembly, Àr nu tillgÀngligt
  • För att bĂ€ttre Ă„terspegla essensen har namnen pĂ„ motorerna förĂ€ndrats: JIT → Universal, Native → Dylib (Dynamisk Bibliotek), Object File → StaticLib (Statisk Bibliotek).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster