Wasmer 2.0 este disponibil, un instrument pentru crearea aplicațiilor pe bază de WebAssembly

A avut loc a doua lansare semnificativă a proiectului Wasmer, care dezvoltă un runtime pentru executarea modulilor WebAssembly, ce poate fi utilizat pentru crearea de aplicații universale capabile să ruleze pe diverse sisteme de operare, precum și pentru executarea izolată a codului nesigurat. Codul proiectului este scris în limbajul Rust și este distribuit sub licența MIT.

Portabilitatea este asigurată prin compilarea codului aplicației într-un cod intermediar de nivel inferior WebAssembly, care poate fi rulat pe orice sistem de operare sau integrat în programe scrise în alte limbaje de programare. Programele sunt containere ușoare în care se execută pseudocod WebAssembly. Aceste containere nu sunt legate de sistemul de operare și pot include cod inițial scris în orice limbaj de programare. Instrumentul Emscripten poate fi folosit pentru compilarea în WebAssembly. Pentru transarea WebAssembly în cod mașină pe platforma curentă, este susținută conectarea diverselor backend-uri de compilare (Singlepass, Cranelift, LLVM) și motoare (activarea JIT sau generarea de cod mașină).

Gestionarea accesului și interacțiunea cu sistemul sunt asigurate prin intermediul API-ului WASI (WebAssembly System Interface), care oferă interfețe software pentru lucrul cu fișiere, socket-uri și alte funcții furnizate de sistemul de operare. Aplicațiile sunt izolate de sistemul principal într-un mediu sandbox și au acces doar la funcționalitățile declarate (mecanism de securitate bazat pe gestionarea capacităților — pentru acțiuni cu fiecare dintre resurse (fișiere, directoare, socket-uri, apeluri de sistem etc.), aplicației trebuie să-i fie date permisiunile corespunzătoare).

Pentru a rula un container WebAssembly, este suficient să instalați în sistem runtime-ul Wasmer, care se furnizează fără dependențe externe ("curl https://get.wasmer.io -sSfL | sh"), și să rulați fișierul necesar ("wasmer test.wasm"). Programele sunt distribuite sub formă de module WebAssembly obișnuite, iar pentru gestionarea acestora se poate folosi managerul de pachete WAPM. Wasmer este disponibil și sub formă de bibliotecă, care poate fi utilizată pentru integrarea codului WebAssembly în programele scrise în Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir și Java.

Platforma permite obținerea unei performanțe de execuție a aplicațiilor apropiate de cea a implementărilor native. Prin intermediul Native Object Engine pentru modulul WebAssembly, este posibilă generarea codului mașină („wasmer compile —native” pentru generarea fișierelor obiect precompilate .so, .dylib și .dll), pentru execuția căruia este necesar un runtime minim, dar se păstrează toate posibilitățile de izolare sandbox. Este posibilă livrarea programelor precompilate cu Wasmer încorporat. API-urile Rust și Wasm-C-API sunt oferite pentru crearea extensiilor și suplimentelor.

Schimbarea semnificativă a versiunii Wasmer este legată de introducerea unor modificări care afectează compatibilitatea în API-ul intern, care, conform dezvoltatorilor, nu vor afecta 99% dintre utilizatorii platformei. Printre modificările sau care afectează compatibilitatea se numără schimbarea formatului modulelor Wasm serializate (modulele serializate în Wasmer 1.0 nu vor putea fi utilizate în Wasmer 2.0). Alte modificări:

  • Suport pentru instrucțiuni SIMD (Single Instruction, Multiple Data), care permit paralelizarea operațiunilor asupra datelor. Dintre domeniile în care utilizarea SIMD poate crește semnificativ performanța, se evidențiază învățarea automată, codificarea și decodificarea video, procesarea imaginilor, simularea proceselor fizice și manipularea graficii.
  • Suport pentru tipurile de referință, care permit modulelor Wasm să acceseze informații din alte module sau din mediul de bază.
  • S-a realizat o optimizare semnificativă a performanței. Viteza de execuție a LLVM runtime pentru numere cu virgulă mobilă a crescut cu aproximativ 50%. Apelurile funcțiilor au fost accelerat semnificativ prin reducerea situațiilor care necesită accesarea nucleului. Performanța generatorului de cod Cranelift a fost îmbunătățită cu 40%. Timpul de deserializare a datelor a fost redus.
    Wasmer 2.0 este disponibil, un instrument pentru crearea aplicațiilor pe bază de WebAssembly
    Wasmer 2.0 este disponibil, un instrument pentru crearea aplicațiilor pe bază de WebAssembly
  • Pentru o reflectare mai precisă a esenței, denumirile motoarelor au fost schimbate: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster