Menü

Mozilla startet Standardisierungsprozess für WebAssembly außerhalb des Webs

Eine Systemschnittstelle soll das Bytecode-Format WebAssembly aus dem Browser heraustragen, ohne an Portabilität und Sicherheit zu verlieren.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 28 Beiträge

(Bild: Blackboard/Shutterstock.com)

Von

Mozilla hat einen neuen Prozess für die Standardisierung einer Systemschnittstelle für WebAssembly gestartet. Unter dem Namen WASI – sprich WebAssembly System Interface – will das Unternehmen die Assemblersprache zur Ausführung in Webbrowsern auch außerhalb des Webs zugänglich machen. WebAssembly ist als Sprache auf ein konzeptuelles System ausgelegt und nicht auf ein physisches, weshalb eine Schnittstelle notwendig ist, um die Sprache in unterschiedlichen Systemen nutzen zu können.

In Zukunft soll sich eine Untergruppe der WebAssembly-Entwickler um die Standardisierung von WASI kümmern. Neben Mozilla sind weitere Firmen am Projekt interessiert, unter anderem NPM und Fastly. Letztere wollen mit Lucet eine eigene WebAssembly-Laufzeitumgebung auf den Markt bringen. Neben Lucet gibt es zurzeit zwei weitere Implementierungen von WASI: wasmtime, die Runtime aus dem Hause Mozilla, sowie der Browser Polyfill.

Beim Arbeiten mit WebAssembly wissen Entwickler nicht unbedingt, welche Art von Betriebssystem das Ziel einer Kompilierung ist. Deshalb kann WebAssembly nicht die Schnittstellen eines einzelnen Systems innerhalb der Standardbibliothek nutzen. WebAssembly benötigt also eine Schnittstelle für ein konzeptuelles System, nicht für ein real existierendes. Es existieren zwar bereits Laufzeitumgebungen, die einen Einsatz außerhalb des Browsers ermöglichen, allerdings kommen sie mit unterschiedlichen Limitierungen, sodass sie wohl nicht als Fundament für ein zukünftiges Ökosystem dienen können.

Laut dem Beitrag in Mozillas Entwicklerblog soll WASI deshalb an den Kernprinzipien von WebAssembly festhalten: Portabilität und Security. Es ist so designt, dass es unabhängig von Browsern funktioniert und nicht auf Web-APIs oder JavaScript angewiesen ist. Als ersten Entwurf schlägt Mozilla vor, ein modulares Set von Standardschnittstellen zu erstellen und den Kern von WASI, wasi-core, zu standardisieren.

wasi-core soll demnach die Grundbausteine enthalten, die alle möglichen Programme benötigen, also beispielsweise Dateien und Netzwerkverbindungen. Sprachen wie Rust sollen wasi-core direkt in ihren Standardbibliotheken nutzen, für C/C++ hat Mozilla wasi-sysroot geschaffen, das libc als wasi-core-Funktionen implementiert.

Ein "Hello World"-Projekt mit WebAssembly und WASI

Die Kombination von WebAssembly und WASI könnte möglicherweise weite Kreise schlagen. Docker-Erfinder Solomon Hykes geht in einem Statement auf Twitter sogar soweit zu sagen, dass die Erfindung von Docker im Jahr 2008 nicht notwendig gewesen wäre, wenn es WebAssembly bereits mit einer Systemschnittstelle gegeben hätte. "WebAssembly auf dem Server" sei laut Hykes die "Zukunft des Computing".

Auch weitere Stimmen in den sozialen Medien schätzen das Projekt spontan als spannend ein. So könne WebAssembly nun möglicherweise schaffen, was die JVM immer versucht hat. Wer einen ersten Prototypen ausprobieren möchte, kann ihn im GitHub-Repository des Projekts finden. (bbo)