Avaldatud on WebAssembly 3.0 standard

W3C konsortsium kuulutas vÀlja WebAssembly 3.0 vahefaili spetsifikatsiooni ning sellega seotud API, mis vÔimaldab luua kÔrge jÔudlusega rakendusi, mida on vÔimalik kasutada erinevates brauserites ja riistvaraplatvormidel. WebAssembly pakub brauserist sÔltumatut universaalset madala taseme vahefaili, mis on mÔeldud erinevatest programmeerimiskeeltest kompileeritud rakenduste tÀitmiseks.

WebAssembly tehnoloogiat saab kasutada brauseris jĂ”udlust nĂ”udvate ĂŒlesannete tĂ€itmiseks, nĂ€iteks videote kodeerimiseks, heli töötlemiseks, graafika ja 3D manipuleerimiseks, mĂ€ngude arendamiseks, krĂŒptograafiliste operatsioonide ja matemaatiliste arvutuste teostamiseks, organiseerides brauseris kompileeritud keeles kirjutatud koodi tĂ€itmist, nagu C/C++. WebAssembly rakendamine JIT-i kaudu vĂ”imaldab saavutada jĂ”udlust, mis on lĂ€hedane natiivkoodile.

WebAssembly peamisteks eesmĂ€rkideks on tagada ĂŒlekandlikkus, kĂ€itumise ennustatavus ja koodi tĂ€itmise identiteet erinevates platvormides. WebAssembly ei piirdu ainult brauseritega ning seda edendatakse ka kui universaalset platvormi, et turvaliselt koodi tĂ€ita igasugustes infrastruktuurides, operatsioonisĂŒsteemides ja seadmetes.

Saadaval on jÀrgmised spetsifikatsioonid:

  • WebAssembly Core — kirjeldab madala taseme virtuaalmasinat, et kĂ€itada WebAssembly vaheformaati. WebAssembly seotud ressursid tarnitakse formaadis „.wasm”, mis sarnaneb Java „.class” failidega ning sisaldab statsilisi andmeid ja koodiga seotud segmente nende andmete töötlemiseks.
  • WebAssembly JavaScript API – pakub JavaScriptiga integreerimiseks mĂ”eldud API-d. See vĂ”imaldab vÀÀrtusi hankida ja parameetreid WebAssembly funktsioonidesse edastada. WebAssembly tĂ€itmine vastab JavaScripti turvamudelile ning kĂ”ik suhtlemine pĂ”hisisu sĂŒsteemiga toimub analoogselt JavaScripti koodi tĂ€itmisega.
  • WebAssembly Web API — mÀÀratleb programmistiku liidese, mis pĂ”hineb lubaduse mehhanismil „.wasm” ressursside pĂ€rimiseks ja tĂ€itmiseks. WebAssembly ressursside formaat on optimeeritud tĂ€itmise alustamiseks, oodates failide tĂ€ielikku laadimist, mis parandab web-rakenduste reageerimisvĂ”imet.
  • WASI API – mÀÀratleb modulaarse sĂŒsteemi liidese WebAssembly kĂ€itamiseks brauserist vĂ€ljaspool ning ligipÀÀsu sellistele ressurssidele nagu failid, vĂ”rguĂŒhendused, pseudojuhuslike arvude generaator ja sĂŒsteemi kellad.

Uues standardi versioonis on mÀrgatavalt paranenud kÔrgetasemeliste keelte kompileerimise tugi WebAssembly'sse. NÀiteks on sisse viidud vÔimalus kompileerida WebAssembly projekte keeltes, nagu Java, OCaml, Scala, Kotlin, Scheme ja Dart. WebAssembly 3.0 peamised muudatused vÔrreldes teise versiooniga on:

  • Tugem 64-bit aadressiruumi toega. MĂ€luaadressimiseks saab nĂŒĂŒd kasutada tĂŒĂŒpi i64, mitte ainult i32, mis laiendab rakendustele kĂ€ttesaadavat aadressiruumi 4 GB-lt kuni 16 EB-ni (browsers on seatud piiriks 16 GB).
  • Esitatud on vĂ”imalus kasutada ĂŒhes WebAssembly moodulis samaaegselt mitut mĂ€l ĐŸĐ±ŃŠĐ”Đșтi ja töötada erinevates aadressiruumides. Muuhulgas on vĂ”imalik andmete kopeerimine erinevate mĂ€l ĐŸĐ±ŃŠĐ”Đșтide vahel, mis asuvad erinevates aadressiruumides.
  • Lisatud on toetus prĂŒgi kogumiseks. Peale varem olemas olnud lineaarse mĂ€lu on pakutud eraldi salvestustĂŒĂŒpi, mida haldab automaatselt prĂŒgi kogumisseade. Kompilaator saab nĂŒĂŒd kasutada erinevaid andmestruktuure, massiive ja muutujaid, mille mĂ€lu eraldamine ja eluiga kuuluvad WebAssembly-le.
  • Lisatud on tĂŒĂŒbitud viidete toetus, mis suudavad kirjeldada viidatud vÀÀrtuse tĂ€pset struktuuri, mis vĂ”imaldab vĂ€ltida tĂ€iendavaid kontrollimisi kĂ€itamisel. Toetatakse alamtĂŒĂŒpe, tĂŒĂŒpide rekursiooni ja vĂ”imalust ohutult kasutada funktsiooniviiteid, mis ei nĂ”ua kontrollimist kĂ€itamise jooksul.
  • Lisatud on toetust sabakĂ”nedele (Tail call), kus praegune funktsioon lĂ”petab kohe pĂ€rast teise funktsiooni kutset, mitte ei kasuta mĂ€lu virnas.
  • Lisatud on toetus erandite kĂ€sitlemiseks.
  • Lisatud on toetust nĂ”rgenenud (relaxed) vektori SIMD instruktsioonidele, mis vĂ”imaldavad saavutada suuremat jĂ”udlust loobudes range semantika jĂ€rgimisest kĂ”ikidel riistvaraplatvormidel.
  • Lisatud on toetust mÀÀratletud tĂ€itmisprofiilile, mis mÀÀratleb platvormist sĂ”ltumatud kĂ€itumised juhiste jaoks, mille tĂ€itmise tulemused vĂ”ivad erinevatel platvormidel erineda (kui tegemist on ujukomaga, NaN tagastamisega, nĂ”rgenenud vektori instruktsioonidega). Selle profili valimisel tagab Wasm mÀÀratletud kĂ€itumise, reprodutseeritavuse ja ĂŒlekantavuse.
  • Lisatud on sĂŒntaks, mis vĂ”imaldab luua enda annotatsioone, et lisada WebAssembly koodi tĂ€iendavat teavet. Varasemalt oli kasutajasektsioonide tugi, mis vĂ”imaldas salvestada sĂŒdamikudeta teavet, olemas WebAssembly binaarformaadis, kuid puudus WebAssembly tekstiformaadis. NĂŒĂŒd on vĂ”imalik lisada seda teavet loetaval ja redigeeritaval kujul.
  • JavaScripti API-sse on lisatud sisseehitatud funktsioonid stringidega töötamiseks. Varem oli JavaScripti stringe vĂ”imalik edastada WebAssembly-sse ainult vĂ€liste linkidena, kuid nĂŒĂŒd on vĂ”imalik stringe otse juurde pÀÀseda ja nendega manipuleerida WebAssembly-s.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster