00
:
00
:
00
:
00
Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

Casi d'Uso Reali

Applicazioni in Produzione

WebAssembly è già utilizzato da alcune delle applicazioni web più importanti al mondo. Ecco i casi d’uso più significativi.

Design e Grafica

Figma

Figma è probabilmente il caso di successo più famoso di Wasm. L’intero motore di rendering 2D è scritto in C++ e compilato a WebAssembly:

  • Rendering vettoriale — Il motore grafico gestisce milioni di path vector in tempo reale
  • Performance — 3x più veloce rispetto alla versione precedente in JavaScript
  • Dimensione — Il modulo Wasm di Figma è circa 5MB (compresso)

AutoCAD Web

Autodesk ha portato AutoCAD sul web compilando il codebase C++ (30+ anni di sviluppo) a Wasm con Emscripten. Questo ha permesso di riutilizzare milioni di righe di codice senza riscriverle.

Photoshop Web

Adobe ha portato Photoshop sul browser grazie a Wasm ed Emscripten, permettendo l’uso di filtri, layer e strumenti complessi direttamente nel browser.

Gaming

Unity WebGL

Unity compila i giochi C# in C++ (tramite IL2CPP) e poi in Wasm. Migliaia di giochi Unity girano nel browser tramite WebAssembly:

  • Angry Birds
  • Temple Run
  • Giochi didattici e simulazioni

Unreal Engine

Epic Games supporta il deploy WebAssembly per Unreal Engine, permettendo esperienze 3D nel browser.

Doom 3 / Quake

Port di motori di gioco classici (idTech) compilati da C/C++ a Wasm, dimostrando che anche giochi AAA possono girare nel browser.

Media e Codec

FFmpeg.wasm

FFmpeg, il toolkit multimediale più usato al mondo, è stato compilato a Wasm:

import { FFmpeg } from '@ffmpeg/ffmpeg';

const ffmpeg = new FFmpeg();
await ffmpeg.load();
await ffmpeg.writeFile('input.mp4', videoData);
await ffmpeg.exec(['-i', 'input.mp4', '-vf', 'scale=320:240', 'output.mp4']);
const data = await ffmpeg.readFile('output.mp4');

Casi d’uso: conversione video nel browser, estrazione audio, creazione GIF, tutto senza server.

Google Meet

Google usa Wasm per i filtri di sfondo nelle videochiamate — la segmentazione dell’immagine in tempo reale richiede performance che solo Wasm può garantire nel browser.

Database e Storage

SQLite in-Browser

SQLite è stato compilato a Wasm, permettendo database SQL completi nel browser:

import initSqlJs from 'sql.js';

const SQL = await initSqlJs();
const db = new SQL.Database();
db.run("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)");
db.run("INSERT INTO users VALUES (1, 'Mario')");
const result = db.exec("SELECT * FROM users");

DuckDB-Wasm

DuckDB, un database analitico OLAP, gira nel browser via Wasm per analisi dati su dataset di milioni di righe.

Machine Learning

ONNX Runtime Web

Microsoft ha compilato ONNX Runtime a Wasm per eseguire modelli di machine learning nel browser:

  • Classificazione immagini
  • Object detection
  • Sentiment analysis
  • Traduzione testo

TensorFlow.js con Wasm Backend

TensorFlow.js può usare un backend Wasm con SIMD per inferenza più veloce:

import * as tf from '@tensorflow/tfjs';
import '@tensorflow/tfjs-backend-wasm';

await tf.setBackend('wasm');
const model = await tf.loadLayersModel('model.json');
const prediction = model.predict(inputTensor);

Crittografia e Sicurezza

1Password

1Password usa Wasm per le operazioni crittografiche nel browser (derivazione chiavi, cifratura/decifratura) garantendo performance native per il vault delle password.

Signal Protocol

Implementazioni del protocollo Signal in Rust compilato a Wasm per messaging end-to-end encrypted direttamente nel browser.

Strumenti per Sviluppatori

Pyodide (Python nel Browser)

L’interprete CPython compilato a Wasm permette di eseguire Python nel browser:

const pyodide = await loadPyodide();
const result = pyodide.runPython(`
  import numpy as np
  np.mean([1, 2, 3, 4, 5])
`);

Stackblitz (WebContainers)

Stackblitz usa Wasm per eseguire Node.js direttamente nel browser, creando un ambiente di sviluppo completo senza server.

Compressione

Brotli e Zstd

Algoritmi di compressione compilati a Wasm per comprimere/decomprimere dati nel browser senza round-trip al server.

Geospaziale

Google Earth

Google Earth Web usa Wasm per il rendering 3D del globo terrestre, con texture ad alta risoluzione e navigazione fluida.

Pattern Comuni

La maggior parte dei casi d’uso reali condivide queste caratteristiche:

  1. Codice esistente in C/C++/Rust che viene portato al web
  2. Calcolo intensivo che sarebbe troppo lento in JavaScript
  3. Elaborazione real-time di immagini, audio o video
  4. Operazioni crittografiche che richiedono performance native
  5. Librerie consolidate che non ha senso riscrivere in JavaScript