Files
clt2023/vortrag9_webassembly_serverseitig.md
2023-03-12 16:51:18 +01:00

1.4 KiB

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.