WebAssembly: Runtime Wasmer erhält WCGI für serverseitige Entwicklung

Die Macher der Laufzeitumgebung Wasmer kündigen mit WCGI eine Technik an, mit der das Common Gateway Interface direkt mit WASI zusammenarbeiten kann.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen

(Bild: alphaspirit/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Frank-Michael Schlede

Das Wasmer-Entwicklungsteam hat eine Erweiterung für die Arbeit mit WebAssembly vorgestellt: Mit dem WebAssembly Common Gateway Interface (WCGI) können Entwickler und Entwicklerinnen bestehende CGI-Anwendungen zu WebAssembly System Interface (WASI) kompilieren. Die Zusammenarbeit mit WebAssembly ermöglicht WCGI zudem die Ausführung in einer Sandbox mit isolierten Anfragen pro Instanz.

WCGI soll laut Blogeintrag einen besseren Ansatz für die serverseitige Entwicklung bieten. Laut Entwicklerteam war für den serverlosen Ansatz die Frage entscheidend, ob das Projekt ein eigenes Framework entwickeln oder einen offenen Standard übernehmen sollte. Ein offener Standard würde den Einsatz von vorhandenem Code ermöglichen. Die Entscheidung fiel dann zugunsten der CGI-Schnittstelle und gegen ein eigenes Framework.

Die Ausrichtung von CGI auf das Ziel, ein Programm pro HTTP-Anfrage auszuführen, macht es dann laut dem Entwicklerteam zum Mittel der Wahl: CGI soll laut dem Wasmer-Team andere Ansätze wie WSGI in Python/Ruby oder NodeJS in Bezug auf Skalierbarkeit und Latenz in serverlosen Umgebungen übertrumpfen.

Mithilfe dieser Technik sollen Entwicklerteams besonders kleine Pakete ausliefern können, die keinen HTTP-Stack oder Docker-Container, sondern nur die Geschäftslogik und statische Assets enthalten. Als weitere Neuerung nennt das Wasmer-Team, dass WCGI durch den Einsatz von WebAssembly die Sandbox-Ausführung mit einer isolierten Anfrage pro Instanz ermöglicht.

WebAssembly: Junge Sprache des World Wide Web

WebAssembly ist ein 2015 vorgestellter Ansatz zur clientseitigen Browserprogrammierung über ein Binärformat, das im Vergleich zu JavaScript bessere Performancewerte bietet. Allerdings war der Bytecode nicht als Konkurrenz zu JavaScript konzipiert, sondern als fallweise Ergänzung und soll dort zum Einsatz kommen, wo Performance eine Rolle spielt. Als Vorteil von WebAssembly-Code gilt, dass er sich mit zahlreichen Programmiersprachen erstellen lässt, unter anderem existieren Tools für Rust, Go, C/C++ und C# oder F#.

Als Highlight des aktuellen Release gilt, dass das WebAssembly Common Gateway Interface Unterstützung für das Ausführen serverloser oder Edge-Apps bietet. Zudem ermöglicht WCGI das Bereitstellen im serverlosen Kontext.

Sehr viele Websites nutzen CGI schon seit Jahrzehnten, was als Grundlage für serverlosen Kontext gilt. Zudem seien WebAssembly-Anwendungen einfacher zu verteilen als Docker-Images und ein Prozess sei pro Anfrage besser skalierbar.

Eine detaillierte Anleitung zum Erstellen einer WCGI-Anwendung mit Rust oder PHP finden Interessierte auf der Webseite von Wasmer. Der Quellcode für eine WCGI-Vorlage für PHP steht auf GitHub bereit.

(fms)