Wasmer 2.0 on nĂŒĂŒd saadaval, tööriistade komplekt, mis vĂ”imaldab luua WebAssembly pĂ”hiseid rakendusi.

Toimus teine oluline vĂ€ljaanne Wasmeri projektist, mis arendab WebAssembly moodulite kĂ€itamiseks mĂ”eldud runtime'i, mida saab kasutada universaalsete rakenduste loomiseks, mis suudavad töötada erinevates operatsioonisĂŒsteemides, samuti eraldatud, usaldamatute koodide kĂ€itamiseks. Projekti kood on kirjutatud Rust keeles ja levitatakse MIT litsentsi alusel.

KandmiskĂ”lblikkus tagatakse rakenduskoodi kompileerimisega madala taseme vahefailikoodiks WebAssembly, mis suudab töötada mis tahes opsĂŒsteemis vĂ”i integreerida teiste programmeerimiskeeltega. Rakendused on kerged konteinerid, milles kĂ€itatakse WebAssembly pseudokood. Need konteinerid ei ole seotud operatsioonisĂŒsteemiga ning vĂ”ivad sisaldada koodi, mis on algselt kirjutatud mis tahes programmeerimiskeeles. WebAssembly-sse kompileerimiseks vĂ”ib kasutada tööriista Emscripten. WebAssembly masinkoodiks tĂ”lgendamise toetamiseks on toetatud erinevaid kompileerimise taustu (Singlepass, Cranelift, LLVM) ja mootoreid (JIT kasutamine vĂ”i masinkoodi genereerimine).

SĂŒsteemiga juurdepÀÀsu ja suhtlemise haldamine toimub lĂ€bi WASI API (WebAssembly System Interface), mis pakub API-sid failide, sokettide ja teiste operatsioonisĂŒsteemi poolt pakutavate funktsioonide jaoks. Rakendused on pĂ”hiseadmest eraldatud liivakasti keskkonnas ja neil on juurdepÀÀs ainult deklareeritud funktsionaalsusele (turvamehhanism, mis pĂ”hineb vĂ”imaluste juhtimisel — iga ressursiga (failid, kataloogid, soketid, sĂŒsteemikutsed jne) tegelemiseks peab rakendusele olema antud vastavad Ă”igused).

WebAssembly konteineri kĂ€ivitamiseks piisab, kui installida sĂŒsteemi Wasmer runtime, mis tarnitakse ilma vĂ€liste sĂ”ltuvusteta ("curl https://get.wasmer.io -sSfL | sh"), ja kĂ€ivitada vajalik fail ("wasmer test.wasm"). Programmid levitatakse tavapĂ€raste WebAssembly moodulitena, mille haldamiseks saab kasutada paketihaldurit WAPM. Wasmer on samuti saadaval teegina, mida saab kasutada WebAssembly koodi sisestamiseks programmides, mis on kirjutatud Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir ja Java keeltes.

Platvorm vĂ”imaldab saavutada rakenduste tĂ€itmise jĂ”udlust, mis on lĂ€hedane kohalike kogumite tĂ€itmisele. Native Object Engine'i abil saab WebAssembly mooduli jaoks genereerida masinkoodi („wasmer compile —native” kompileeritud objektifailide .so, .dylib ja .dll genereerimiseks), mille kĂ€itamiseks on vajalik minimaalne runtime, kuid sĂ€ilitatakse kĂ”ik sandbox-isoleerimise vĂ”imalused. On vĂ”imalik pakkuda eelnevalt kompileeritud programme koos integreeritud Wasmeriga. TĂ€ienduste ja laienduste loomiseks on saadaval Rust API ja Wasm-C-API.

Oluline versiooninumbri muutus Wasmeris on seotud ĂŒhilduvust rikkuvate muudatustega sisemises API-s, mis, nagu arendajad kinnitavad, ei mĂ”juta 99% platvormi kasutajatest. Ühe ĂŒhilduvust rikkuva muudatusena on toodud esile Wasm'i serialiseeritud moodulite vormingu muutus (Wasmer 1.0-s serialiseeritud mooduleid ei saa kasutada Wasmer 2.0-s). Teised muudatused:

  • SIMD (Single Instruction, Multiple Data) juhiste tugi, mis vĂ”imaldab andmete töötlemise operatsioonide paralleelset korraldamist. Valdkonnad, kus SIMD rakendamine vĂ”ib jĂ”udlust oluliselt tĂ”sta, hĂ”lmavad masinĂ”pet, video kodeerimist ja dekodeerimist, pilditöötlust, fĂŒĂŒsikaliste protsesside simuleerimist ja graafikaga manipuleerimist.
  • Viidatud tĂŒĂŒpide tugi, mis vĂ”imaldab Wasm moodulitel pÀÀseda ligi teabele teistes moodulites vĂ”i baaskeskkonnas.
  • Olenemata on toimunud mĂ€rkimisvÀÀrne jĂ”udluse optimeerimine. LLVM runtime'i kiirus komakohtadega numbritega on suurenenud ligikaudu 50%. Funktsioonide kutsumise kiirus on oluliselt suurenenud tĂ€nu olukordade vĂ€henemisele, mis nĂ”uavad juurdepÀÀsu tuumale. Cranelift koodigeneraatori jĂ”udlust on suurendatud 40%. Andmete deserialiseerimise aeg on lĂŒhenenud.
    Wasmer 2.0 on nĂŒĂŒd saadaval, tööriistade komplekt, mis vĂ”imaldab luua WebAssembly pĂ”hiseid rakendusi.
    Wasmer 2.0 on nĂŒĂŒd saadaval, tööriistade komplekt, mis vĂ”imaldab luua WebAssembly pĂ”hiseid rakendusi.
  • Selleks, et reflekteerida tĂ€psemalt sisu, on mootorite nimetusi muudetud: JIT → Universal, Native → Dylib (DĂŒnaamiline Raamatukogu), Object File → StaticLib (Statiline Raamatukogu).

Allikas: opennet.ru

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster