WebAssembly
Főnév
WebAssembly (tsz. WebAssemblies)
- (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?
- Kódírás → Írd meg a programot C/C++/Rust vagy más támogatott nyelven.
- Fordítás WASM-re → A kódot lefordítjuk WebAssembly bytecode-ra (
.wasmfájl). - Betöltés Böngészőben → Egy JavaScript API segítségével betöltjük és futtatjuk a
.wasmfájlt. - 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.
- WebAssembly - Szótár.net (en-hu)
- WebAssembly - Sztaki (en-hu)
- WebAssembly - Merriam–Webster
- WebAssembly - Cambridge
- WebAssembly - WordNet
- WebAssembly - Яндекс (en-ru)
- WebAssembly - Google (en-hu)
- WebAssembly - Wikidata
- WebAssembly - Wikipédia (angol)