====== 3.3 Build WASM per Blazor ======
Questa guida spiega come compilare OpenSSL per Blazor WebAssembly.
----
===== Cos'è WebAssembly? =====
**WebAssembly (WASM)** è un formato binario che funziona nel browser. Permette:
* Codice ad alte prestazioni nel browser
* Usare linguaggi come C/C++ sul web
* Applicazioni Blazor WebAssembly
**Quando ho bisogno di WASM?**
| Tipo di Applicazione | WASM necessario? |
|----------------------|------------------|
| Blazor WebAssembly | **Sì** |
| Blazor Server | No (usa build Windows/Linux) |
| ASP.NET Core API | No |
| App Desktop (.NET) | No |
----
===== Prerequisiti =====
Oltre agli strumenti standard serve:
* ☑ [[.:..vorbereitung:wsl-einrichten|WSL2 con Ubuntu/Fedora]]
* ☑ [[.:..vorbereitung:emscripten|Emscripten SDK]]
I build WASM sono possibili solo sotto Linux/WSL, non direttamente sotto Windows!
----
===== Passi di Compilazione =====
==== Passo 1: Aprire WSL ====
wsl
==== Passo 2: Attivare Emscripten ====
source /opt/emsdk/emsdk_env.sh
# Verificare
emcc --version
==== Passo 3: Preparare la Directory di Build ====
mkdir -p /mnt/d/Projects/openssl-3.6.0/wasm-build
mkdir -p /mnt/d/Projects/openssl-3.6.0/wasm-install
cd /mnt/d/Projects/openssl-3.6.0/wasm-build
==== Passo 4: Configurare OpenSSL per WASM ====
emconfigure /mnt/d/Projects/openssl-3.6.0/src/Configure \
linux-generic32 \
--prefix=/mnt/d/Projects/openssl-3.6.0/wasm-install \
no-asm \
no-threads \
no-shared \
no-sock \
no-tests \
no-apps \
CC=emcc \
AR=emar \
RANLIB=emranlib
==== Passo 5: Compilare ====
emmake make -j$(nproc) build_libs
==== Passo 6: Installare ====
emmake make install_sw
----
===== Risultato =====
Dopo la compilazione:
wasm-build/
├── openssl.js # JavaScript Loader (~150 KB)
└── openssl.wasm # Modulo WebAssembly (~2 MB)
----
===== Continua con =====
* [[.:vorbereitung:emscripten|Installare Emscripten SDK]]
* [[.:build:start|Torna alla panoramica build]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//