Fachleute von Mozilla haben das Projekt WASI (WebAssembly System Interface) vorgestellt, das die Entwicklung von APIs für die Erstellung herkömmlicher Anwendungen vorsieht, die außerhalb des Browsers ausgeführt werden. Dabei steht anfangs die Plattformunabhängigkeit und ein hohes Maß an Sicherheit solcher Anwendungen im Vordergrund.

Wie erwähnt, werden sie in einer speziellen "Sandbox" ausgeführt und haben Zugang zu Dateien, Dateisystemen, Netzwerksockets, Timern und so weiter. Dabei darf das Programm nur ausdrücklich erlaubte Aktionen ausführen.
Da der Pseudocode von WebAssembly eine plattformunabhängige Variante der Assemblersprache ist, ermöglicht der Einsatz von JIT eine hohe Code-Leistung, vergleichbar mit nativen Anwendungen. Derzeit ist eine Implementierung der grundlegenden POSIX-APIs (Dateien, Sockets usw.) verfügbar, jedoch fehlt bisher die Unterstützung für Locks und asynchronen Input/Output. In Zukunft werden Module für Kryptographie, 3D-Grafik, Sensoren und Multimedia erwartet.

Es ist auch erwähnenswert, dass das Projekt Fastly einen Compiler namens Lucet für WebAssembly-Anwendungen vorgestellt hat. Dieser ermöglicht die sichere Ausführung von Drittanbieterprogrammen in WebAssembly innerhalb anderer Anwendungen, was beispielsweise für Plugins geeignet ist. Der Compiler selbst ist in Rust geschrieben und unterstützt Code in C, Rust und TypeScript.
Natürlich gibt es noch viele Fragen zur Sicherheit dieses Ansatzes. Die Ausführung von Code in einer "Sandbox" steht in einem merkwürdigen Widerspruch zum Zugang zu Funktionen des Hauptsystems, sodass diese Frage noch geklärt werden muss. Außerdem ist unklar, welche Programme in einem solchen Modus ausgeführt werden sollen und wie ihr Verhalten überwacht werden muss.
Quelle: 3dnews.ru
