# Webassembly auf der Serverseite
- Ansprache in Sächsisch
- Webassembly: Geschichte
	- 1996: JavaScript 1.0: Oh oh
	- 2009: NodeJS: Frontend, Backend, Desktop
	- JS pros: Man hat überall einen Browser, läuft überall
	- JS cons: Langsam, es ist JavaScript.
	- 2017: WASM 1.0, Browser als Compiletarget
	- WASM pros: gleiche Vorteile, ist schneller, kein JavaScript.
- Wie funktioniert Webassembly?
	- Code in beliebiger Sprache schreiben.
	- Bester Support: C, C++, Rust, C#
	- Compilen zu wasm32-x target
	- Frontend bauen ohne JavaScript: DOM mit wasm-bindgen importieren
	- Strings werden in gemeinsam allozierten Speicher raw reingeschrieben, um zwischen Sprachen auszutauschen.
	- Yew, Sicamore, Leptos für Rust wasm Frontend
- Backend mit Webassembly? Warum?
	- WASM 4 cloud: Sandboxing, portabel (JITC Bytecode), schnell
	- WASM Laufzeit außerhalb des Brpwsers: Wasmtime, Wasmer, WasmEdge
	- Kann man für Plugin Systeme nutzen
- Component Modell: wie definiert man Interfaces und wie tauscht man Daten aus?
	- Eigenes Spec Format für Interfaces: WIT
	- WIT definiert alle Interfaces und man implementiert dann das WIT in der Sprache
- Was ist Wasi?
	- nutze WIT, um Host Interaktionen zu definieren.
- Es gibt wie gesagt fertige Runtimes aber auch CLIs, um Programme einmal aufzurufen
- Es gibt spin http component. Man kann damit webservice mit WASM Runtime bauen. Ungefähr wie Java Springboot
- Kann man als containerd-shim deployen. 
