K dispozícii je Wasmer 5.0, nástroj na vytváranie aplikácií založených na WebAssembly

Bol vypustený projekt Wasmer 5.0, ktorý rozvíja runtime pre vykonávanie modulov WebAssembly, ktorý je možné použiť na vytváranie univerzálnych aplikácií schopných bežať na rôznych operačných systémoch. Wasmer sa dá tiež využiť na izolované vykonávanie nedôveryhodných blokov kódu ako súčasti bežných aplikácií. Kód projektu je napísaný v jazyku Rust a šíri sa pod licenciou MIT.

Možnosť spustenia jednej aplikácie na rôznych platformách je realizovaná prostredníctvom kompilácie do nízkoúrovňového medzičlánkového kódu WebAssembly, ktorý je možné spúšťať v akýchkoľvek OS alebo integrovať do programov v iných programovacích jazykoch. Programy sú ľahké kontajnery, v ktorých sa vykonáva pseudokód WebAssembly. Tieto kontajnery nie sú viazané na operačný systém a môžu obsahovať kód, ktorý bol pôvodne napísaný v akomkoľvek programovacom jazyku.

Na vykonávanie medzičlánkového kódu WebAssembly alebo jeho prekladu do strojového kódu cieľovej platformy sú k dispozícii rôzne backendy:

  • Backend založený na kompilátore Singlepass, optimalizovaný pre použitie v blockchains.
  • Backend založený na generátore kódu Cranelift, optimalizovaný pre vývojový proces.
  • Backend založený na kompilátore LLVM, optimalizovaný pre pracovné nasadenia.
  • Backend pre spúšťanie vo webovom prehliadači.
  • Backend založený na JavaScript engine JavascriptCore, optimalizovaný pre platformu macOS.
  • Backend založený na JavaScript engine V8, optimalizovaný pre aplikácie na platformách iOS a Android.
  • Backend založený na interpretera Wasmi, optimalizovaný pre blockchains a Rust projekty, ktoré nepoužívajú štandardnú knižnicu (nostd).
  • Backend založený na runtime WAMR, optimalizovaný pre platformu iOS.

Aplikácie sú izolované od hlavného systému v sandboxovom prostredí a majú prístup len k vyhlásenej funkčnosti. Na izoláciu sa používa mechanizmus založený na správe oprávnení — na vykonávanie akcií s každým z prostriedkov (súbory, adresáre, sockety, systémové výzvy atď.) musia byť aplikácii poskytnuté príslušné oprávnenia. Riadenie prístupu a interakciu so systémom zabezpečuje API WASI (WebAssembly System Interface), ktoré poskytuje programovacie rozhrania pre prácu so súbormi, socketmi a inými systémovými funkciami.

Platforma umožňuje dosiahnuť výkon vykonávania aplikácií, ktorý sa blíži k výkonu nativných zostáv. Pomocou Native Object Engine pre modul WebAssembly možno vygenerovať strojový kód, na ktorý je potrebný minimálny runtime, ale zachovávajú sa všetky možnosti sandboxovej izolácie. Je možná dodávka predkompilovaných programov so zabudovaným Wasmerom. Na vytváranie nadstavieb a doplnkov sú k dispozícii Rust API a Wasm-C-API.

Na spustenie kontajnera WebAssembly stačí nainštalovať do systému runtime Wasmer, ktorý sa dodáva bez vonkajších závislostí ("curl https://get.wasmer.io -sSfL | sh"), a spustiť potrebný súbor ("wasmer test.wasm"). Programy sa distribuujú vo forme bežných modulov WebAssembly, pričom na ich správu je možné použiť balíčkový manažér WAPM. Wasmer je tiež k dispozícii vo forme knižnice, ktorú je možné využiť na implementáciu kódu WebAssembly do programov v jazykoch Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir a Java.

Hlavné novinky Wasmer 5.0:

  • Bola realizovaná možnosť používania interpretrátorov WebAssembly.
  • Bol pridaný experimentálny backend na báze ľahkého interpretrátora Wasmi, ktorý umožňuje spúšťanie medzifázového kódu WebAssembly v prostrediach s obmedzenými zdrojmi.
  • Bol pridaný experimentálny backend na báze runtime WebAssembly WAMR (WebAssembly Micro Runtime), optimalizovaný na minimálnu spotrebu zdrojov a vhodný na použitie na zariadeniach s malým objemom operačnej pamäte.
  • Bol pridaný experimentálny backend na báze JavaScriptového enginu v8, používaného v prehliadačoch na kódovej báze Chromium. Hlavnou výhodou využitia backendu na báze V8 je možnosť používania zabudovaného v tomto engine debuggeru a nástrojov pre webových vývojárov, ako aj dostupnosť v V8 rozšírenej funkcionality WebAssembly, ako je spracovanie výnimiek a uvoľňovanie pamäte.
  • Do backendu, ktorý používa LLVM, bola pridaná experimentálna podpora architektúry Loongarch64.
  • Bola pridaná podpora platformy iOS, dostupná pri použití backendov WAMR, Wasmi a V8.
  • Podpora kompilátora Emscripten bola ukončená.
  • Boli aktualizované závislosti, medzi ktorými sú LLVM 18, generátor kódu Cranelift 27 a rámec rkyv 0.8.
  • Bola vykonaná optimalizácia výkonu. Napríklad pri vykonávaní operácií deserializácie modulov sa pozoruje nárast výkonu až o 50%.
    K dispozícii je Wasmer 5.0, nástroj na vytváranie aplikácií založených na WebAssembly
    K dispozícii je Wasmer 5.0, nástroj na vytváranie aplikácií založených na WebAssembly
    K dispozícii je Wasmer 5.0, nástroj na vytváranie aplikácií založených na WebAssembly
    K dispozícii je Wasmer 5.0, nástroj na vytváranie aplikácií založených na WebAssembly
    K dispozícii je Wasmer 5.0, nástroj na vytváranie aplikácií založených na WebAssembly
    K dispozícii je Wasmer 5.0, nástroj na vytváranie aplikácií založených na WebAssembly
    K dispozícii je Wasmer 5.0, nástroj na vytváranie aplikácií založených na WebAssembly

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster