Wasmer 2.0, un set de instrumente pentru construirea de aplicații bazate pe WebAssembly, este disponibil

Proiectul Wasmer și-a lansat a doua lansare majoră, dezvoltând un timp de execuție pentru executarea modulelor WebAssembly care pot fi utilizate pentru a crea aplicații universale care pot rula pe diferite sisteme de operare, precum și pentru a rula cod neîncrezat în mod izolat. Codul proiectului este scris în Rust și este distribuit sub licența MIT.

Portabilitatea este realizată prin compilarea codului aplicației în cod intermediar WebAssembly de nivel scăzut, care poate rula pe orice sistem de operare sau poate fi încorporat în programe în alte limbaje de programare. Programele sunt containere ușoare care rulează pseudocod WebAssembly. Aceste containere nu sunt legate de sistemul de operare și pot include cod scris inițial în orice limbaj de programare. Setul de instrumente Emscripten poate fi folosit pentru a compila în WebAssembly. Pentru a traduce WebAssembly în codul de mașină al platformei actuale, acesta acceptă conectarea diferitelor backend-uri de compilare (Singlepass, Cranelift, LLVM) și motoare (folosind JIT sau generarea de cod de mașină).

Controlul accesului și interacțiunea cu sistemul sunt asigurate cu ajutorul API-ului WASI (WebAssembly System Interface), care oferă interfețe de programare 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ționalitatea declarată (un mecanism de securitate bazat pe managementul capacităților - pentru acțiuni cu fiecare dintre resurse (fișiere, directoare, socket-uri, apeluri de sistem etc.), cererea trebuie să primească competențele corespunzătoare).

Pentru a lansa un container WebAssembly, trebuie doar să instalați Wasmer în sistemul de rulare, care vine 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, care pot fi gestionate folosind managerul de pachete WAPM. Wasmer este disponibil și ca bibliotecă care poate fi folosită pentru a încorpora codul WebAssembly în programele Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir și Java.

Platforma vă permite să obțineți performanțe de execuție a aplicațiilor aproape de ansamblurile native. Folosind Native Object Engine pentru modulul WebAssembly, puteți genera cod de mașină („wasmer compile -native” pentru a genera fișiere obiect precompilate .so, .dylib și .dll), care necesită un timp de rulare minim pentru a rula, dar păstrează toată izolarea sandbox-ului Caracteristici. Este posibil să furnizați programe precompilate cu Wasmer încorporat. Rust API și Wasm-C-API sunt oferite pentru crearea de suplimente și extensii.

O schimbare semnificativă a numărului versiunii Wasmer este asociată cu introducerea unor modificări incompatibile la API-ul intern, care, potrivit dezvoltatorilor, nu vor afecta 99% dintre utilizatorii platformei. Printre modificările care întrerup compatibilitatea, se numără și o modificare a formatului modulelor Wasm serializate (modulele serializate în Wasmer 1.0 nu vor putea fi folosite în Wasmer 2.0). Alte modificari:

  • Suport pentru instrucțiuni SIMD (Single Instruction, Multiple Data), permițând paralelizarea operațiunilor de date. Domeniile în care utilizarea SIMD poate îmbunătăți semnificativ performanța includ învățarea automată, codificarea și decodarea video, procesarea imaginilor, simularea proceselor fizice și manipularea graficelor.
  • Suport pentru tipurile de referință, permițând modulelor Wasm să acceseze informații în alte module sau în mediul de bază.
  • Au fost realizate optimizări semnificative de performanță. Viteza de rulare LLVM cu numere în virgulă mobilă a fost mărită cu aproximativ 50%. Apelurile de funcții au fost accelerate semnificativ prin reducerea situațiilor care necesită acces la nucleu. Performanța generatorului de coduri Cranelift a fost crescută cu 40%. Timp redus de deserializare a datelor.
    Wasmer 2.0, un set de instrumente pentru construirea de aplicații bazate pe WebAssembly, este disponibil
    Wasmer 2.0, un set de instrumente pentru construirea de aplicații bazate pe WebAssembly, este disponibil
  • Pentru a reflecta mai exact esența, numele motoarelor au fost schimbate: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).

Sursa: opennet.ru

Adauga un comentariu