WebAssembly (o WebAssembly Core Specification) è un formato di codice binario per programmi eseguibili utilizzato come lingua di programmazione portatile. È progettato per essere una piattaforma target efficiente per la compilazione di linguaggi ad alto livello come C++, C o Rust, consentendo il deployment su Web per client e server. WebAssembly è progettato per mantenere la compatibilità versione per versione, una caratteristica fondamentale per il suo utilizzo come codice di consegna su Internet.
Per utilizzare WebAssembly con JavaScript si seguono i seguenti passaggi:
1. Carica il file .wasm: Il codice WebAssembly viene distribuito sotto forma di file con estensione .wasm. Quindi è necessario caricare in qualche modo il codice .wasm nel browser. Normalmente utilizzi una funzione fetch() di JavaScript per farlo.
1. Compila il codice .wasm: JavaScript offre funzioni globali WebAssembly.compile() per compilarlo in codice macchina che può essere eseguito direttamente sul tuo dispositivo.
1. Crea istanza: Dopo la compilazione, è necessario creare un’istanza dell’oggetto. Puoi utilizzare WebAssembly.instantiate() per farlo. Questa funzione ti darà un oggetto con tutte le esportazioni del tuo modulo WebAssembly a cui è possibile accedere e utilizzare come normali funzioni JavaScript.
Anche se JavaScript e WebAssembly possono accedere allo stesso heap della memoria, non possono direttamente accedere o manipolare le variabili dell’altro. WebAssembly può chiamare una funzione JavaScript solo se è stata passata come importazione, e viceversa.