WebAssembly Deep Dive

WebAssembly ist in aller Munde. Meistens wird Wasm in Verbindung mit Anwendungsentwicklung im Browser verwendet. Das ist aber bei Weitem nicht alles, was Wasm kann.

Wasm ist eine Alternative und/oder Ergänzung zur Container-Technologie. Die stark wachsende Popularität von Wasm nehmen wir zum Anlass, um uns in diesem Workshop die Zeit zu nehmen, einen ausführlichen Blick hinter die Kulissen von Wasm zu wagen.

Wie sehen uns mit Hilfe von WAT (Wasm Text) an, was Wasm von sich aus ohne weitere Hilfsmittel kann. Beispiele in Rust und TypeScript zeigen, wo Wasm endet und darauf aufbauende Plattformen beginnen.

Der Workshop endet mit Praxisbeispielen von Wasm in Serverless-Umgebungen.

Vorkenntnisse

  • Gute Basiskenntnisse der Softwareentwicklungs
  • Grundverständnis über Entwicklung verteilter Systeme in Cloud-Umgebungen

Lernziele

  • Klares Bild davon, was Wasm kann und was nicht
  • Verständnis über die Funktionsweise der Wasm Sandbox
  • Verständnis, wie Memory Management bei Wasm funktioniert
  • Abgrenzung zwischen Wasm und Container-Technologie

  • Agenda

    • Wir beginnen im Workshop mit einer Einführung, in der geklärt wird, was Wasm genau ist und welche spannenden Möglichkeiten es bietet.
    • Anschließend gehen wir auf die technischen Grundlagen von Wasm ein, indem wir einfache Programme mit WAT (WebAssembly Text) schreiben. Dieser Abschnitt vermittelt ein Verständnis dafür, was mit Wasm ohne zusätzliche Programmiersprachen oder Bibliotheken erreicht werden kann.
    • Als Nächstes werfen wir einen Blick auf Wasi (Wasm System Interface), ein Nebenprojekt von Wasm, das es ermöglicht, Wasm-Module sicher und portabel außerhalb des Browsers auszuführen. Wir werden die Grundlagen von Wasi erkunden und herausfinden, wie es funktioniert und welche Anwendungsfälle es ermöglicht.
    • Da WebAssembly nicht nur mit JavaScript, sondern auch mit vielen anderen Programmiersprachen verwendet werden kann, werden wir uns ansehen, wie höhere Programmiersprachen wie Rust, Go und C# in das Wasm-Ökosystem integriert werden können.

    Pausenzeiten

    • ab 09:00 Uhr: Registrierung und Begrüßungskaffee
    • 10:00 Uhr: Beginn
    • 12:30 - 13:30 Uhr: Mittagspause
    • 15:00 - 15:15 Uhr: Kaffeepause
    • 16:15 - 16:30 Uhr: Kaffeepause
    • ca. 17:00 Uhr: Ende

     

    Technische Anforderungen

    Der Workshop wird Code-lastig. Ich werde alle Beispiele live zeigen. Alle Teilnehmer:Innen können entscheiden, ob sie mitmachen oder lieber zusehen und Fragen stellen. Wer bei allen Beispielen mitmachen möchte, braucht:

    • WABT (https://github.com/WebAssembly/wabt)
    • Wasmtime (https://docs.wasmtime.dev/cli.html)
    • Rust (aktuelle Version) inkl. wasm-pack (https://rustwasm.github.io/wasm-pack/)
    • VSCode (aktuelle Version) mit diversen Erweiterungen (werden wir im Workshop installieren)

    Speaker

     

    Rainer Stropek
    Rainer Stropek ist begeisterter Coder, IT-Unternehmer, Microsoft MVP & RD, Mentor beim CoderDojo Linz, Teilzeitlehrer und Läufer.

    CLC-Newsletter

    Sie möchten über die Continuous Lifecycle und die ContainerConf auf dem Laufenden gehalten werden?

     

    Anmelden