WebAssembly

Üdvözlöm, Ön a WebAssembly szó jelentését keresi. A DICTIOUS-ban nem csak a WebAssembly szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a WebAssembly szót egyes és többes számban mondani. Minden, amit a WebAssembly szóról tudni kell, itt található. A WebAssembly szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. AWebAssembly és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Főnév

WebAssembly (tsz. WebAssemblies)

  1. (informatika) A WebAssembly (WASM) egy hatékony, alacsony szintű bináris formátum, amelyet a böngészők futtatnak nagy teljesítményű webes alkalmazásokhoz. Segítségével C, C++, Rust, és más nyelveken írt kódokat lehet fordítani és futtatni a böngészőben, közel natív sebességgel.



🔹 Mi az a WebAssembly?

  • Egy platformfüggetlen, bináris formátum, amelyet a böngészők képesek közvetlenül végrehajtani.
  • Nem helyettesíti a JavaScriptet, hanem kiegészíti, hogy erőforrás-igényes feladatokat gyorsabban tudjunk végrehajtani.
  • Böngészők mellett futtatható szerveren, IoT-eszközökön és más platformokon is.



🔹 Miért Használjunk WebAssembly-t?

Gyors → Közel natív teljesítményű kódot futtat böngészőben.
Nyelvfüggetlen → Nem csak JavaScriptet, hanem C, C++, Rust és más nyelveket is használhatunk.
Biztonságos → Sandboxed környezetben fut, így nem fér hozzá a rendszer adataihoz engedély nélkül.
Kis méretű és hatékony → A bináris kód gyorsan letöltődik és fut.



🔹 Hogyan Működik a WebAssembly?

  1. Kódírás → Írd meg a programot C/C++/Rust vagy más támogatott nyelven.
  2. Fordítás WASM-re → A kódot lefordítjuk WebAssembly bytecode-ra (.wasm fájl).
  3. Betöltés Böngészőben → Egy JavaScript API segítségével betöltjük és futtatjuk a .wasm fájlt.
  4. Futtatás → A WebAssembly modul interakcióba léphet a JavaScript-tel és a DOM-mal.



🔹 Egyszerű Példa (C++ → WebAssembly)

1️⃣ Írjunk egy egyszerű C++ kódot

#include <iostream>

extern "C" {
    int add(int a, int b) {
        return a + b;
    }
}

🔹 Az extern "C" biztosítja, hogy a fordító ne módosítsa a függvény nevét.



2️⃣ Fordítsuk WASM-re (.wasm fájl)

Használjuk az Emscripten fordítót:

emcc add.cpp -s WASM=1 -o add.wasm

Ez létrehoz egy add.wasm fájlt, amelyet a böngésző be tud tölteni.



3️⃣ JavaScript-ben betöltjük és használjuk

fetch('add.wasm')
    .then(response => response.arrayBuffer())
    .then(bytes => WebAssembly.instantiate(bytes))
    .then(result => {
        console.log("3 + 5 =", result.instance.exports.add(3, 5));
    });

🔹 WebAssembly.instantiate() betölti és inicializálja a .wasm fájlt, majd meghívhatjuk az add() függvényt.



🔹 Hol Használják a WebAssembly-t?

Játékok → Pl. Unity és Unreal Engine exportálása böngészőre.
Képfeldolgozás → Photoshop és egyéb szerkesztők futtatása weben.
Tudományos számítások → Nehéz matematikai számítások JavaScript helyett WASM-ben.
Blokklánc → Pl. Ethereum 2.0 és Polkadot smart contractok futtatása WASM-ben.



🔹 WebAssembly és JavaScript Összehasonlítás

Jellemző WebAssembly (WASM) JavaScript (JS)
Sebesség 🏆 Nagyon gyors 🚀 Gyors, de lassabb
Típusosság Erősen típusos Dinamikus típusok
Fő használati terület CPU-igényes számítások Weboldalak és UI fejlesztés
Platformfüggetlenség Natív szintű optimalizáció Minden böngésző támogatja



🔹 Összegzés

WebAssembly gyorsabb és hatékonyabb, mint a JavaScript nagy számítási igényű feladatoknál.
Segítségével C/C++/Rust kódot futtathatunk böngészőben natív sebességgel.
Kiváló választás játékokhoz, képfeldolgozáshoz, blokklánchoz, AI-hoz és egyéb erőforrás-igényes alkalmazásokhoz.