Wasmer 2.0, sett ta 'għodda għall-bini ta' applikazzjonijiet ibbażati fuq WebAssembly, huwa disponibbli

Il-proġett Wasmer ħareġ it-tieni rilaxx maġġuri tiegħu, jiżviluppa runtime għall-eżekuzzjoni ta 'moduli WebAssembly li jistgħu jintużaw biex jinħolqu applikazzjonijiet universali li jistgħu jaħdmu fuq sistemi operattivi differenti, kif ukoll biex imexxu kodiċi mhux affidabbli f'iżolament. Il-kodiċi tal-proġett huwa miktub f'Rut u huwa mqassam taħt il-liċenzja MIT.

Il-portabilità tinkiseb billi jiġi kkompilat kodiċi tal-applikazzjoni f'kodiċi intermedju WebAssembly ta 'livell baxx, li jista' jaħdem fuq kwalunkwe OS jew ikun inkorporat fi programmi f'lingwi ta 'programmar oħra. Il-programmi huma kontenituri ħfief li jmexxu WebAssembly pseudocode. Dawn il-kontenituri mhumiex marbuta mas-sistema operattiva u jistgħu jinkludu kodiċi miktub oriġinarjament fi kwalunkwe lingwa ta 'programmar. Is-sett ta' għodod Emscripten jista' jintuża biex jikkompila għal WebAssembly. Biex tittraduċi WebAssembly f'kodiċi tal-magni tal-pjattaforma attwali, tappoġġja l-konnessjoni ta 'diversi backends ta' kumpilazzjoni (Singlepass, Cranelift, LLVM) u magni (bl-użu ta 'JIT jew ġenerazzjoni ta' kodiċi tal-magni).

Il-kontroll tal-aċċess u l-interazzjoni mas-sistema huma pprovduti bl-użu tal-API WASI (WebAssembly System Interface), li tipprovdi interfaces ta 'programmazzjoni biex taħdem ma' fajls, sokits u funzjonijiet oħra pprovduti mis-sistema operattiva. L-applikazzjonijiet huma iżolati mis-sistema prinċipali f'ambjent ta 'sandbox u għandhom aċċess biss għall-funzjonalità ddikjarata (mekkaniżmu ta' sigurtà bbażat fuq ġestjoni tal-kapaċità - għal azzjonijiet ma 'kull waħda mir-riżorsi (fajls, direttorji, sockets, sejħiet tas-sistema, eċċ.), il- applikazzjoni għandha tingħata s-setgħat xierqa).

Biex tniedi kontenitur WebAssembly, installa biss Wasmer fis-sistema runtime, li tiġi mingħajr dipendenzi esterni (“curl https://get.wasmer.io -sSfL | sh”), u mexxi l-fajl meħtieġ (“wasmer test.wasm” ). Il-programmi huma mqassma fil-forma ta 'moduli WebAssembly regolari, li jistgħu jiġu ġestiti bl-użu tal-maniġer tal-pakketti WAPM. Wasmer huwa wkoll disponibbli bħala librerija li tista 'tintuża biex tiddaħħal kodiċi WebAssembly fil-programmi Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir, u Java.

Il-pjattaforma tippermettilek tikseb prestazzjoni ta 'eżekuzzjoni ta' applikazzjoni qrib assemblaġġi indiġeni. Bl-użu tal-Magna tal-Oġġetti Native għall-modulu WebAssembly, tista 'tiġġenera kodiċi tal-magni ("wasmer compile -native" biex tiġġenera fajls ta' oġġetti .so, .dylib u .dll prekompilati), li teħtieġ runtime minimu biex taħdem, iżda żżomm l-iżolament kollu tar-ramel. karatteristiċi. Huwa possibbli li jiġu pprovduti programmi kkumpilati minn qabel b'Wasmer inkorporat. L-API Rust u Wasm-C-API huma offruti għall-ħolqien ta 'add-ons u estensjonijiet.

Bidla sinifikanti fin-numru tal-verżjoni ta 'Wasmer hija assoċjata mal-introduzzjoni ta' bidliet inkompatibbli għall-API interna, li, skont l-iżviluppaturi, mhux se jaffettwa 99% tal-utenti tal-pjattaforma. Fost il-bidliet li jkissru l-kompatibilità, hemm ukoll bidla fil-format ta 'moduli Wasm serjalizzati (moduli serjalizzati f'Wasmer 1.0 mhux se jkunu jistgħu jintużaw f'Wasmer 2.0). Bidliet oħra:

  • Appoġġ għall-istruzzjonijiet SIMD (Istruzzjoni Singola, Dejta Multipla), li tippermetti parallelizzazzjoni ta 'operazzjonijiet ta' data. Oqsma li fihom l-użu ta' SIMD jista' jtejjeb il-prestazzjoni b'mod sinifikanti jinkludu t-tagħlim tal-magni, il-kodifikazzjoni u d-dekodifikazzjoni tal-vidjo, l-ipproċessar tal-immaġni, is-simulazzjoni tal-proċess fiżiku u l-manipulazzjoni tal-grafika.
  • Appoġġ għal tipi ta 'referenza, li jippermetti lill-moduli Wasm jaċċessaw informazzjoni f'moduli oħra jew fl-ambjent sottostanti.
  • Saru ottimizzazzjonijiet sinifikanti tal-prestazzjoni. Il-veloċità tar-runtime LLVM b'numri floating point żdiedet b'madwar 50%. Is-sejħiet tal-funzjoni ġew aċċellerati b'mod sinifikanti billi tnaqqsu s-sitwazzjonijiet li jeħtieġu aċċess għall-kernel. Il-prestazzjoni tal-ġeneratur tal-kodiċi Cranelift żdiedet b'40%. Ħin imnaqqas ta' deserialization tad-data.
    Wasmer 2.0, sett ta 'għodda għall-bini ta' applikazzjonijiet ibbażati fuq WebAssembly, huwa disponibbli
    Wasmer 2.0, sett ta 'għodda għall-bini ta' applikazzjonijiet ibbażati fuq WebAssembly, huwa disponibbli
  • Biex tirrifletti b'mod aktar preċiż l-essenza, l-ismijiet tal-magni ġew mibdula: JIT → Universali, Native → Dylib (Librerija Dinamika), Fajl tal-Oġġetti → StaticLib (Librerija Statika).

Sors: opennet.ru

Żid kumment