Was ist WASI

WebAssembly auf der Serverseite: Was ist WASI?

Was ist WebAssembly (aka WASM)? Diese und ähnliche Fragen beantwortete unser IT Consultant Pascal Fries bei den Chemnitzer Linux-Tagen 2023. In diesem Artikel fassen wir seinen Vortrag kurz zusammen und stellen die Folien und den Videostream als Download zur Verfügung.

Im Jahr 1996 wurde JavaScript (JS) eingeführt, so dass man dynamische Websites erstellen konnte. Neben einigen Vorteilen (Sandbox, wird im Browser nativ unterstützt, ist portabel) hat die Technologie jedoch auch Nachteile (z.B. ist sie langsam). 2017 gab es WASM 1.0, was die gleichen Vorteile mit sich brachte, aber deutlich schneller war als JS.

Wie funktioniert WASM?

Mit WASM kann man Code in beliebiger Sprache schreiben und nach wasm32-x kompilieren. Es lässt sich im Browser via JS instanziieren und User können ggf. Exports aus JS aufrufen. Bei Frontends “ohne”
JS stellte sich jetzt die Frage, wie man zwischen DOM und WASM “übersetzen“ kann? Die Lösung lautet: wasm-bindgen

Nun fragt man sich: WASM server – warum und wie?

WASM is sicher (Sandbox), portabel (JITC Bytecode) und schnell (kleiner Fußabdruck). So viel schonmal zum Warum. Um die Vorteile voll ausschöpfen zu können, benötigt man ein Interface, das man mit WIT definieren kann. Es heißt WASI und ist noch im Alpha-Stadium, kann aber bereits dafür genutzt werden, um Anwendungen zu entwickeln.

Zusammenfassend lässt sich also sagen, dass obwohl serverseitiges WASM noch in der Anfangsphase steckt, es schon jetzt eine gute Möglichkeit zur Entwicklung von modularen APIs bietet.

● WASM fürs Frontend (+++)
● WASM als Plug-in (++)
● WASI für Host-Interaktion (+)
● WASM Runtimes (++)

Hier gibt es die Präsentation im Detail und den Vortrag als Videostream.

The following two tabs change content below.

Pascal Fries

Als IT Consultant für Cloud Native Technologien berät Pascal Fries unsere Kunden in den Themen Infrastructure as Code und Continuous Deployment, insbesondere im Containerumfeld.

Neueste Artikel von Pascal Fries (alle ansehen)