Na voljo je Wasmer 5.0, orodje za ustvarjanje aplikacij na osnovi WebAssembly

Predstavljen je izvod projekta Wasmer 5.0, ki izboljšuje runtime za izvajanje modulov WebAssembly, ki jih je mogoče uporabiti za ustvarjanje univerzalnih aplikacij, ki jih je mogoče izvajati v različnih operacijskih sistemih. Wasmer se lahko uporablja tudi za izolirano izvajanje nezaupljivih kodnih blokov v okviru običajnih aplikacij. Koda projekta je napisana v jeziku Rust in je distribuirana pod licenco MIT.

Možnost izvajanja ene aplikacije na različnih platformah je dosežena z izvajanjem v nizko nivojski vmesni jezik WebAssembly, ki se lahko izvaja v vseh operacijskih sistemih ali pa se vgradi v programe v drugih programskih jezikih. Programi predstavljajo lahke vsebuje, v katerih se izvaja psevdokoda WebAssembly. Ti vsebiki niso vezani na operacijski sistem in lahko vključujejo kodo, prvotno napisano v katerem koli programskem jeziku.

Za izvajanje vmesnega kode WebAssembly ali njegovo prevajanje v strojno kodo ciljne platforme so na voljo različni backend-i:

  • Backend na osnovi prevajalnika Singlepass, optimalen za uporabo v blockchainih.
  • Backend na osnovi generatorja kode Cranelift, optimalen za uporabo v procesu razvoja.
  • Backend na osnovi prevajalnika LLVM, optimalen za uporabo v industrijskih implementacijah.
  • Backend za izvajanje v spletnem brskalniku.
  • Backend na osnovi JavaScript motorja JavascriptCore, optimalen za uporabo na platformi macOS.
  • Backend na osnovi JavaScript motorja V8, optimalen za aplikacije za platformi iOS in Android.
  • Backend na osnovi interpreterja Wasmi, optimalen za blockchain in Rust projekte, ki ne uporabljajo standardne knjižnice (nostd).
  • Backend na osnovi runtime WAMR, optimalen za platformo iOS.

Aplikacije se izoliraju od glavnog sustava u sandbox okruženju i imaju pristup samo deklariranoj funkcionalnosti. Za izolaciju se koristi mehanizam temeljen na upravljanju mogućnostima — za radnje s svakim od resursa (datoteke, direktoriji, soketi, sistemski pozivi itd.) aplikaciji moraju biti dodijeljena odgovarajuća ovlaštenja. Upravljanje pristupom i interakcija s sustavom osigurava se pomoću API-ja WASI (WebAssembly System Interface), koji pruža programske sučelje za rad s datotekama, soketima i drugim sistemskim funkcijama.

Platforma omogućava postizanje performansi izvršavanja aplikacija bliskih izvršavanju nativnih buildova. Pomoću Native Object Engine za WebAssembly modul može se generirati strojni kod, za čije je pokretanje potrebno minimalno runtime okruženje, ali se zadržavaju sve mogućnosti sandbox izolacije. Moguća je dostava prethodno kompajliranih programa s ugrađenim Wasmerom. Za stvaranje nadogradnji i dodataka ponuđeni su Rust API i Wasm-C-API.

Za pokretanje WebAssembly kontejnera dovoljno je instalirati runtime Wasmer u sustav, koji se isporučuje bez vanjskih ovisnosti ("curl https://get.wasmer.io -sSfL | sh"), i pokrenuti potrebnu datoteku ("wasmer test.wasm"). Programi se distribuiraju u obliku običnih WebAssembly modula, a za upravljanje njima može se koristiti paketni menadžer WAPM. Wasmer je također dostupan u obliku biblioteke, koju je moguće koristiti za ugradnju WebAssembly koda u programe na jezicima Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir i Java.

Glavne novosti Wasmer 5.0:

  • Implementirana je mogućnost korištenja interpretatora WebAssembly.
  • Dodana je eksperimentalna backend verzija temeljen na laganom interpretatoru Wasmi, koji omogućuje izvršavanje međukod WebAssembly u okruženjima s ograničenim resursima.
  • Dodana je eksperimentalna backend verzija temeljen na WebAssembly runtime WAMR (WebAssembly Micro Runtime), optimiziranog za minimalnu potrošnju resursa i prikladnog za primjenu na uređajima s malim kapacitetom radne memorije.
  • Dodana je eksperimentalna backend podrška zasnovana na JavaScript motoru v8, koji se koristi u preglednicima na bazi Chromium. Glavna prednost korišćenja backenda zasnovanog na V8 je mogućnost korišćenja ugrađenog debagera i alata za web programere, kao i dostupnost proširene funkcionalnosti WebAssembly u V8, poput obrade izuzetaka i sakupljanja smeća.
  • Eksperimentalna podrška za arhitekturu Loongarch64 je dodata u backend koji koristi LLVM.
  • Dodana je podrška za iOS platformu, dostupna uz korišćenje WAMR, Wasmi i V8 backenda.
  • Podrška za Emscripten kompajler je obustavljena.
  • Ažurirane su zavisnosti, među kojima su LLVM 18, generator koda Cranelift 27 i framework rkyv 0.8.
  • Optimizovana je performansa. Na primer, tokom izvršavanja operacija deserializacije modula primećeno je povećanje performansi do 50%.
    Na voljo je Wasmer 5.0, orodje za ustvarjanje aplikacij na osnovi WebAssembly
    Na voljo je Wasmer 5.0, orodje za ustvarjanje aplikacij na osnovi WebAssembly
    Na voljo je Wasmer 5.0, orodje za ustvarjanje aplikacij na osnovi WebAssembly
    Na voljo je Wasmer 5.0, orodje za ustvarjanje aplikacij na osnovi WebAssembly
    Na voljo je Wasmer 5.0, orodje za ustvarjanje aplikacij na osnovi WebAssembly
    Na voljo je Wasmer 5.0, orodje za ustvarjanje aplikacij na osnovi WebAssembly
    Na voljo je Wasmer 5.0, orodje za ustvarjanje aplikacij na osnovi WebAssembly

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster