Wasmer 3.0:ssa on parannuksia WASI:iin, API:ihin, muistinhallintaan ja muihin parannuksiin

Pesukone

Wasmer on nopea ja turvallinen WebAssembly-ajonaika, joka mahdollistaa erittäin kevyiden säiliöiden käytön missä tahansa: työpöydältä pilvi-, reuna- ja IoT-laitteisiin.

Lähes 6 kuukauden kuluttua edellisestä julkaisusta Wasmer 3.0:n uusi versio julkaistiin, kolmas suuri versio projektista, joka kehittyy ajonaika WebAssembly-moduulien suorittamiseen jota voidaan käyttää luomaan universaaleja sovelluksia, jotka voivat toimia eri käyttöjärjestelmissä, sekä epäluotettavan koodin suorittamiseen.

La kyky ajaa samaa sovellusta eri alustoilla se saadaan kääntämällä koodi matalan tason WebAssembly-välikoodiksi, joka voi toimia missä tahansa käyttöjärjestelmässä tai upottaa ohjelmiin muilla ohjelmointikielillä. Ohjelmat ovat kevyitä säilöjä, jotka käyttävät WebAssembly-pseudokoodia.

Näitä säilöjä ei ole sidottu käyttöjärjestelmään, ja ne voivat sisältää alun perin millä tahansa ohjelmointikielellä kirjoitettua koodia.

Jos haluat kääntää WebAssemblyn nykyiseksi alustan konekoodiksi, sinä tukee eri koontitaustaohjelmien yhdistämistä (Singlepass, Cranelift, LLVM) ja moottorit (käyttämällä JIT:tä tai generoimalla konekoodia). Pääsynhallinnan ja vuorovaikutuksen järjestelmän kanssa tarjoaa WASI (WebAssembly System Interface) API, joka tarjoaa ohjelmointirajapinnat tiedostojen, pistokkeiden ja muiden käyttöjärjestelmän tarjoamien toimintojen käsittelyyn.

Alusta avulla voit saavuttaa sovelluksen suorituskyvyn, joka on lähellä alkuperäisten koontiversioiden suorituskykyä.

Wasmer 3.0: n tärkeimmät uutuudet

Tässä uudessa Wasmer 3.0 -versiossa kyky luoda alkuperäisiä suoritettavia tiedostoja mille tahansa alustalle. Käsky "wasmer create-exe» on suunniteltu kokonaan uudelleen muuntamaan WebAssembly-välikooditiedosto erillisiksi suoritettaviksi Linux-, Windows- ja macOS-alustoille, joita voidaan käyttää ilman Wasmerin asentamista.

Toinen esillä oleva uutuus on, että kyky ajaa WAPM-paketteja sijaitsee wapm.io-hakemistossa käyttämällä "wasmer run" -komentoa. Suorita esimerkiksi "wasmer run python/python» lataa python-paketin wapm.io-arkistosta ja suorittaa sen.

Wasmer Rust API on suunniteltu kokonaan uudelleen, muuttaa tapaa, jolla se käsittelee muistia ja tarjoaa mahdollisuuden tallentaa Wasm-objekteja turvallisesti Store-rakenteeseen.

Tässä Wasmer 3.0:n uudessa versiossa korostetaan myös parannettu WASI API -toteutus (WebAssembly System Interface) WASI API:n ongelmien korjaamisen lisäksi, jotta se toimisi tiedostojärjestelmän kanssa. Sisäiset tyypit on suunniteltu uudelleen WAI:lla (WebAssembly Interfaces), mikä mahdollistaa joukon uusia toimintoja käyttöönoton tulevaisuudessa.

Tämän lisäksi moottoreita on myös yksinkertaistettu, koska erillisten JIT-moottoreiden sijaan dynaaminen ja staattinen sidonta (Universal, Dylib, StaticLib) tarjoaa nyt yhteisen moottorin ja lataa ja tallentaa koodin jota ohjataan parametriasetustasolla.

Artefaktien deserialisoimiseen käytetään rkyv-kehystä, joka tarjoaa nollakopiotoiminnon, eli se ei vaadi ylimääräistä muistin varausta ja suorittaa sarjoituksen käyttämällä vain alun perin toimitettua puskuria.

Niistä muut muutokset jotka erottuvat uudesta versiosta:

  • Rkyvin käyttö lisäsi käynnistysnopeutta merkittävästi.
  • Singlepass-kääntäjä on parannettu tukemaan moniarvoisia toimintoja, parantamaan luotettavuutta ja lisäämään tukea poikkeusten käsittelykehykselle.
  • Komponenttien sarja wasmer-js on toteutettu suorittamaan Wasmeria verkkoselaimessa ja olemaan vuorovaikutuksessa sen kanssa JavaScriptin avulla kirjaston avulla wasm-bindgen.
  • Uutta rakennetta on ehdotettu. MemoryView joka mahdollistaa datan lukemisen ja kirjoittamisen lineaariselle muistialueelle.

Lopuksi on mainittava, että ohjelmat jaetaan tavallisina WebAssembly-moduuleina, joita voidaan hallita WAPM-paketinhallinnan avulla. Wasmer on saatavana myös kirjastona, jota voidaan käyttää WebAssembly-koodin upottamiseen Rust-, C/C++-, C#-, D-, Python-, JavaScript-, Go-, PHP-, Ruby-, Elixir- ja Java-ohjelmiin.

Projektin koodi on kirjoitettu Rust-kielellä ja sitä jaetaan MIT-lisenssillä ja voit tarkistaa siitä lisää, Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.