Mozilla entwickelt WebAssembly System Interface

WebAssembly auf allen Plattformen: Wasm außerhalb des Browsers durch WASI-Standard?

Maika Möbus

© shutterstock / La1n

Mozilla hat das WebAssembly System Interface (WASI) geschaffen. Es befindet sich noch in einem experimentellen Zustand und soll einen Standard zur Verwendung von WebAssembly außerhalb des Browsers darstellen. Lucet von der Firma Fastly stellt eine Laufzeit und einen Compiler mit WASI-Support zur Verfügung.

Mozilla hat ein Interface entwickelt, um die Verwendung von WebAssembly (Wasm) außerhalb des Browsers zu standardisieren. Das noch experimentelle WebAssembly System Interface (WASI) soll Wasm eine Plattform bieten, um plattform-unabhängig zu laufen. Dabei sollen die Vorteile von Wasm erhalten bleiben: Portabilität und Sicherheit. Daneben stehen auch schon ein Compiler und eine Laufzeit mit WASI-Support in Form von Lucet zur Verfügung.

WASI

WebAssembly hat als Assembly-Sprache für eine virtuelle Maschine noch kein System Interface. An dieser Stelle setzt Mozilla an: WASI, ein Interface für ein virtuelles Betriebssystem, soll einen neuen Standard für Wasm außerhalb des Browsers darstellen. Es liegt noch in einem experimentellen Zustand vor. „Entwickler beginnen, WebAssembly außerhalb des Browsers zu betreiben, weil es eine schnelle, skalierbare, sichere Art darstellt, den gleichen Code über alle Maschinen hinweg auszuführen“, so die Mozilla-Mitarbeiterin Lin Clark auf Mozilla Hacks.

Dabei soll WASI die Schlüsselfunktionen von Wasm beibehalten: Portabilität des Codes sowie Sicherheit innerhalb und außerhalb des Browsers. Der WASI-Standard soll zum sicheren Low-Level-Interfacing von WebAssembly-Programmen mit dem Dateisystem, Netzwerken und anderen Systemfunktionen beitragen – sei es in der Cloud, auf Edge-Geräten oder Browsern sowie nativ auf Smartphone oder Laptop. Mozilla führt die Portabilitäts- und Sicherheitsfunktionen im Video weiter aus:

Derzeit gibt es drei Implementierungen von WASI:

Lucet

Lucet ist ein von Fastly Open Source gestellter nativer WebAssembly-Compiler und eine native WebAssembly-Laufzeit. In Lucet ist Laufzeit-Support für WASI enthalten. Fastly zeigt in einer Demo ein entsprechendes Codebeispiel zur Anwendung nach WASI-Standard. Darin wird ein in C geschriebenes Programm durch Clang zu WebAssembly und dann mithilfe des WASI-konfigurierten Lucet-Compilers zu nativem Code kompiliert. Durch die WASI-konfigurierte Lucet-Laufzeit wird schließlich der native Code ausgeführt.

Die Unterstützung von WASI wurde durch eine mehrjährige Zusammenarbeit von Fastly und Mozilla ermöglicht. Lucet ist auf Ahead-of-Time (AOT) Compilation ausgelegt, was Vorteile gegenüber der JIT (Just-in-Time) Compilation in Browser Engines bieten soll. Die Wasm-Laufzeit Lucet soll dazu dienen, nicht vertrauenswürdige WebAssembly-Programme innerhalb einer Anwendung sicher ausführen zu können.

WebAssembly

WebAssembly oder Wasm ist ein vom World Wide Web Consortium (W3C) entwickelter Bytecode für eine virtuelle Maschine, der innerhalb einer Sandbox läuft. Wasm wird von allen gängigen Desktop- und mobilen Browsern unterstützt. C, C++, Rust und Go kompilieren nativ nach WebAssembly, und durch das experimentelle Projekt Blazor auch C#.

Weitere Informationen zu WASI bietet der Eintrag auf Mozilla Hacks. Fastly hält weitere Details zu Lucet bereit.

Verwandte Themen:

Geschrieben von
Maika Möbus
Maika Möbus
Maika Möbus ist seit Januar 2019 Redakteurin bei Software & Support Media. Zuvor studierte sie Soziologie an der Goethe-Universität Frankfurt und an der Johannes Gutenberg-Universität Mainz.
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "WebAssembly auf allen Plattformen: Wasm außerhalb des Browsers durch WASI-Standard?"

avatar
4000
  Subscribe  
Benachrichtige mich zu:
Entwickler
Gast

Wozu? Es doch die GraalVM!