WebAssembly (tsz. WebAssemblies)
✅ 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.
.wasm
fájl)..wasm
fájlt.
#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.
.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.
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.
✔ 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.
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 |
✅ 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.