Introduzione a WebAssembly
Cos’è WebAssembly (Wasm)?
WebAssembly è un formato di istruzioni binario per una macchina virtuale basata su stack. È progettato come target portabile per la compilazione di linguaggi ad alto livello come C, C++, Rust e AssemblyScript, consentendo il deployment sul web per applicazioni client e server.
Non Sostituisce JavaScript
Wasm è progettato per cooperare con JavaScript, non per sostituirlo. I casi d’uso tipici sono task CPU-intensive:
- Editing video/audio.
- Crittografia.
- Compressione dati.
- Giochi (motori fisici, AI).
- Visione artificiale.
Come Funziona?
- Scrivi codice in C, Rust, Go, ecc.
- Compili il codice in un file
.wasm. - Il browser scarica ed esegue il file
.wasmin una sandbox sicura.
```javascript // Esempio di caricamento Wasm in JS const importObject = { imports: { imported_func: (arg) => console.log(arg) }, };
WebAssembly.instantiateStreaming(fetch(“simple.wasm”), importObject).then( (obj) => obj.instance.exports.exported_func(), ); ```