From 0faa78cf0ef2d3f74f9380db986960ca980fab24 Mon Sep 17 00:00:00 2001 From: structix Date: Sun, 12 Mar 2023 16:51:18 +0100 Subject: [PATCH] Add vortrag9 --- vortrag9_webassembly_serverseitig.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 vortrag9_webassembly_serverseitig.md diff --git a/vortrag9_webassembly_serverseitig.md b/vortrag9_webassembly_serverseitig.md new file mode 100644 index 0000000..9e6200c --- /dev/null +++ b/vortrag9_webassembly_serverseitig.md @@ -0,0 +1,28 @@ +# 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.