S-a lansat standardul WebAssembly 2.0 

W3C a dezvăluit Recent printr-o postare un proiect al unui nou caiet de sarcini care standardizează codul de pregătire al WebAssembly 2.0 și API-ul asociat pentru a permite crearea de aplicații de înaltă performanță care sunt portabile între browsere și platforme hardware.

Pentru cei nou la WebAssembly, ar trebui să știți asta aceasta oferă un middleware generic, nivel scăzut și independent de browser, pentru a rula aplicații compilate din diverse limbaje de programare. Folosind JIT pentru WebAssembly, puteți atinge un nivel de performanță apropiat de codul nativ.

Despre WebAssembly

WebAssembly poate fi folosit pentru a efectua sarcini de înaltă performanță în browser, cum ar fi codificarea video, procesarea audio, manipularea 3D și grafică, dezvoltarea jocurilor, operațiuni criptografice și calcule matematice, prin executarea de cod scris în limbaje compilate precum C/C++.

Printre principalele sarcini ale WebAssembly se numără furnizarea de portabilitate, predictibilitatea comportamentului și identitatea execuției codului pe diferite platforme. Recent, WebAssembly a fost promovat și ca o platformă universală pentru execuția sigură a codului pe orice infrastructură, sistem de operare și dispozitiv, fără a se limita la browsere.

Despre proiectul WebAssembly 2.0

Din partea modificărilor care au fost făcute de la WebAssembly sunt propunerile finalizate pentru WebAssembly 2.0 sunt SIMD cu lățime fixă, operații de memorie de masă, tipuri de referință, suport JavaScript BigInt pentru WebAssembly i64, suport pentru mai multe valori returnate și import/export de mutabile variabile globale.

W3C a publicat trei proiecte de specificații WebAssembly 2.0:

  1. Miez de asamblare web: descrie o mașină virtuală de nivel scăzut pentru rularea codului WebAssembly intermediar. Resursele legate de WebAssembly vin într-un format „.wasm”, similar fișierelor Java „.class”, care conțin date statice și segmente de cod pentru a lucra cu acele date.
  2. Interfață JavaScript WebAssembly: oferă un API pentru integrarea cu JavaScript. Vă permite să obțineți valori și să transmiteți parametri la funcțiile WebAssembly. Execuția WebAssembly urmează modelul de securitate JavaScript și toată interacțiunea cu gazda se realizează într-un mod similar cu rularea codului JavaScript.
  3. API WebAssembly Web: definește un API bazat pe mecanismul Promise pentru solicitarea și executarea resurselor „.wasm”. Formatul de resurse WebAssembly este optimizat pentru a începe execuția fără a aștepta descărcarea completă a fișierului, ceea ce îmbunătățește capacitatea de răspuns a aplicațiilor web.

Diferențele dintre WebAssembly și WebAssembly 2.0

De asemenea, trebuie remarcat faptul că există câteva modificări importante în WebAssembly 2.0 în comparație cu prima versiune a standardului:

  • Suport tip vector v128 și instrucțiuni vectoriale aferente care vă permit să efectuați operații pe mai multe valori numerice în paralel (SIMD, instrucțiune unică, date multiple).
  • Abilitatea de a importa și exporta variabile globale mutabile, care permite legarea globală pentru valori ca pointeri de stivă în C++.
  • Noi instrucțiuni pentru a converti float în int, care în loc să arunce o excepție la depășirea rezultatului, returnează valoarea minimă sau maximă posibilă (necesară pentru SIMD).
  • Instrucțiuni pentru extinderea semnului numerelor întregi (creșteți adâncimea de biți a unui număr păstrând semnul și valoarea).
  • Suport pentru returnarea mai multor valori pe blocuri și funcții (precum și transmiterea mai multor parametri la funcții).
  • Implementați funcțiile JavaScript BigInt64Array și BigUint64Array pentru a converti între tipul JavaScript BigInt și reprezentarea WebAssembly a numerelor întregi pe 64 de biți.
  • Suport pentru tipuri de referință (funcref și externref) și declarațiile asociate acestora (select, ref.null, ref.func și ref.is_null).
  • memory.copy, memory.fill, memory.init și data.drop instrucțiuni pentru a copia date între regiuni de memorie și pentru a șterge regiuni de memorie.
  • Instrucțiuni pentru accesul direct și modificarea tabelelor (table.set, table.get, table.size, table.grow).
  • Abilitatea de a crea, importa și exporta mai multe tabele într-un singur modul. Funcții pentru a copia/completa tabele în modul batch (table.copy, table.init și elem.drop).

În cele din urmă, dacă sunteți interesat să aflați mai multe despre aceasta, puteți consulta detaliile În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.