Die Fastly Edge-Cloud-Plattform

Was ist WASI?

Die Integration ist eine bedeutende Herausforderung für Geschäftsinhaber, die ihre Betriebsabläufe in verschiedenen Umgebungen optimieren möchten. Wenn Tools isoliert voneinander betrieben werden, sind die Mitarbeiter mit Ineffizienzen und Schwierigkeiten konfrontiert, was zu verpassten Chancen führen kann.

Das WebAssembly System Interface (WASI) bietet eine Lösung, indem es gemeinsame Standards für den Betrieb von WebAssembly-Modulen außerhalb von Webbrowsern bereitstellt und so eine reibungsärmere Integration mit anderen Systemen und der von Ihrem Unternehmen genutzten Software ermöglicht.

Lesen Sie weiter, um mehr über WASI zu erfahren und herauszufinden, wie die Einführung von WASI dazu beitragen kann, Prozesse zu optimieren, die Produktivität der Entwickler zu steigern und Ihr Unternehmen zu neuen Höhen zu führen.

Was ist WASI?

WebAssembly System Interface (WASI) ist eine Initiative, die darauf abzielt, die Möglichkeiten von WebAssembly (Wasm) außerhalb des Browsers zu erweitern. Es bietet eine standardisierte Systemschnittstelle (API) für Wasm-Module, die es ihnen ermöglicht, über verschiedene Plattformen hinweg sicher und effizient mit Systemressourcen zu interagieren und dabei ein konsistentes Verhalten beizubehalten.

Wasm vs WASI

Auch wenn Wasm und WASI auf den ersten Blick ähnlich erscheinen mögen, verfolgen sie doch unterschiedliche Ziele, die zur Optimierung des Betriebs beitragen. Das Verständnis ihrer Unterschiede ist entscheidend, um ihre gemeinsamen Stärken optimal zu nutzen. Schauen wir uns das genauer an:

Wasm

Wasm ermöglicht die schnelle und effiziente Ausführung von Code auf jeder CPU, was die Entwicklung von Anwendungen ermöglicht, die überall gut funktionieren. Der Schwerpunkt liegt auf der Ausführung binärer Befehle auf unterschiedlicher Hardware. 

Zu den wichtigsten Funktionen gehören:

  • Universelle Nutzung: So können Sie Code einmal schreiben und überall ausführen, wo WebAssembly unterstützt wird.

  • Geschwindigkeit: Der Code erreicht dank seines kompakten Formats und der direkten Kompilierung eine nahezu native Performance.

  • Sicherheit: Code wird in einem geschützten Bereich isoliert, um Sicherheitslücken zu verringern.

  • Modularität: Die Arbeit wird in wiederverwendbare Komponenten unterteilt.

Im Wesentlichen bietet WebAssembly eine Abstraktion über die große Vielfalt der in der Branche verwendeten CPUs, sodass Code auf diesen CPUs portabel sein kann.

Wie verbessert WASI Wasm?

WASI erweitert die Funktionen von WebAssembly, indem es die Interaktion von Code mit den zugrunde liegenden Systemen ermöglicht. Während Wasm sich auf schnelle, plattformübergreifende Ausführung konzentriert, bietet WASI zusätzliche Funktionen. 

Zu den wichtigsten Stärken gehören:

  • Systemzugriff: Ermöglicht das Lesen und Schreiben von Dateien, Netzwerkzugriff und mehr.

  • Standardisierung: Konsistente APIs sorgen für einheitliches Verhalten über Plattformen hinweg.

  • Sicherheit: Minimiert Risiken, indem nur notwendige Genehmigungen erteilt werden.

  • Flexibilität: Verwendet einen modularen Ansatz, um nur erforderliche Systeminteraktionen umzusetzen.

Trotz ihrer Unterschiede sind Wasm und WASI darauf ausgelegt, zusammenzuarbeiten. Wasm sorgt für eine effiziente, universelle Ausführung, während WASI Funktionen auf Systemebene bereitstellt und so die Funktionalität überall dort verbessert, wo Ihr Code kritische Aufgaben ausführt. Ihre kombinierte Nutzung ermöglicht die Erstellung leistungsstarker, plattformübergreifender Anwendungen, die auf Ihre Anforderungen zugeschnitten sind.

Was ist das Ziel von WASI?

WASI wurde entwickelt, um spezifische Herausforderungen anzugehen, die sich mit der zunehmenden Beliebtheit von WebAssembly (Wasm) in Unternehmen ergaben. Zwar zeichnet sich Wasm durch die effiziente plattformübergreifende Ausführung von Code aus, doch seine Einschränkungen stehen einer breiteren Anwendung im Wege. 

Betrachten wir die Einschränkungen von Wasm:

  • Eingeschränkter Zugriff: Wasm arbeitet in einer sicheren Umgebung, was für die Sicherheit entscheidend ist, insbesondere in Browsern. Dies bedeutet jedoch, dass Wasm nicht direkt auf Systemressourcen wie Dateien oder Netzwerke zugreifen kann. 

  • Begrenzte native Interaktionen: Wasm wurde in erster Linie für das Internet entwickelt und weist daher nur minimale Interaktion mit Systemfunktionen auf. Ohne direkten Zugriff auf System-APIs können Wasm-Module keine Aufgaben wie Dateisystemzugriff oder Netzwerkkommunikation außerhalb von Browsern ausführen. 

  • Fragmentierte Werkzeuge: Das Fehlen einer standardisierten Möglichkeit, wie Wasm mit Ressourcen interagieren kann, führte dazu, dass Entwickler auf umgebungsspezifische Erweiterungen oder benutzerdefinierte Lösungen setzten. Diese unterschiedlichen Ansätze führten zu fragmentierten Werkzeugen, wodurch das Verhalten von Wasm-Modulen je nach Umgebung variierte und die plattformübergreifende Entwicklung erschwert wurde.

Als sich Wasm über Browser hinaus ausdehnte, wurde die Nachfrage nach einer einheitlichen Systemschnittstelle immer dringlicher. Diese Nachfrage führte zur Entwicklung von WASI, das für die folgenden Zwecke unverzichtbar ist:

  • Bekämpfung der Fragmentierung: WASI stellt einen einheitlichen Satz von APIs bereit, die plattformübergreifend nutzbar sind, sodass Wasm-Module überall gleich funktionieren. Dies vereinfacht die Entwicklung und verringert Kompatibilitätsprobleme, sodass Sie Anwendungen für Server, Edge-Geräte und vieles mehr erstellen können.

  • Verbesserung von Sicherheit und Portabilität: Es erhöht außerdem die Sicherheit, indem es eine Standardschnittstelle für Systeminteraktionen definiert. Es folgt einem fähigkeitsbasierten Sicherheitsmodell, das Wasm-Modulen nur die notwendigen Berechtigungen erteilt und so das Risiko verringert. 

Die APIs von WASI

WASI besteht aus mehreren wesentlichen Komponenten, die zusammenwirken, um eine leistungsstarke Umgebung für die Ausführung Ihrer WebAssembly-Anwendungen bereitzustellen. Diese Komponenten erweitern die Funktionalität, Sicherheit und Flexibilität von WebAssembly und machen es damit für zahlreiche Anwendungsbereiche außerhalb von Browsern geeignet. Im Folgenden sind die Hauptbestandteile aufgeführt:

APIs

Die WASI-Schnittstelle stellt APIs bereit, die es Ihren WebAssembly-Modulen ermöglichen, mit zugrunde liegenden Systemen zu interagieren. Diese APIs dienen als Schnittstelle, über die Module verschiedene Aufgaben ausführen und so sicherstellen, dass sie über die notwendigen Werkzeuge verfügen, um in ihrer Umgebung effektiv zu arbeiten. Zu den wichtigsten APIs gehören:

  • File I/O: WASI ermöglicht es Modulen, Dateien auf dem Host-System zu lesen und zu schreiben. Diese Funktion ermöglicht es Ihren Modulen, Datenspeicherung, Konfigurationsdateien und von Nutzern erstellte Inhalte zu verwalten, was für Anwendungen, die auf persistente Daten angewiesen sind, unerlässlich ist.

  • Netzwerk: Die Schnittstelle umfasst Netzwerk-APIs, die es Modulen ermöglichen, Netzwerkverbindungen herzustellen und zu verwalten. Diese Fähigkeit ist entscheidend für Anwendungen, die über das Internet oder lokale Netzwerke kommunizieren müssen, und unterstützt Aufgaben von einfachen HTTP-Anfragen bis hin zu komplexeren Netzwerkoperationen.

  • Zeit: Diese Schnittstelle bietet WebAssembly-Modulen die Möglichkeit, mit Systemuhren zu interagieren, um die aktuelle Zeit abzurufen oder Zeitintervalle zu messen. Diese API ist entscheidend für Aufgaben wie das Logging von Ereignissen, das Planen von Aufgaben oder die Messung der Ausführungszeit von Operationen. 

  • Zufälligkeit: Diese Schnittstelle eignet sich hervorragend für Aufgaben, die eine hochwertige Zufälligkeit erfordern, wie das Generieren von Verschlüsselungsschlüsseln, das Erstellen eindeutiger Kennungen oder die Implementierung sicherer Protokolle.

  • Terminal-Eingang/Ausgabe: Diese APIs arbeiten mit Standard-Eingabe-, Ausgabe- und Fehlerströmen und ermöglichen so die Interaktion mit der Konsole oder anderen I/O-Strömen.

Ein Blick in die Zukunft von WASI

WASI 0.2 wird kontinuierlich weiterentwickelt. Es werden fortlaufend Anstrengungen unternommen, um neue Funktionen und Möglichkeiten wie Sockets, HTTP, Schlüssel-Wert- und Blob-Speicher, Konfiguration, Messaging, Kryptografie sowie ein Komponentenmodell einzuführen. Zahlreiche Branchen und Unternehmen setzen WASI ein, um die plattformübergreifende Entwicklung zu vereinfachen und die Sicherheit sowie die Performance von Geschäftsanwendungen zu verbessern.

In Zukunft werden die Grundprinzipien der Kompatibilität und Kombinierbarkeit den Übergang zwischen den verschiedenen Versionen von WASI bestimmen. Diese Prinzipien stellen sicher, dass Ihre bestehenden WebAssembly-Anwendungen, die Systemzugriff erfordern, auch bei der Weiterentwicklung von WASI weiterhin funktionsfähig bleiben. Wenn Sie Ihre Anwendungen bereits jetzt mit den aktuellen WASI-APIs entwickeln, stehen Ihnen in Zukunft auch Optionen für die Integration künftiger Funktionen offen.

Fastly und WASI

Fastly hat maßgeblich zur Entwicklung und Einführung von Wasm und WASI beigetragen und trägt weiterhin zu den Standards und Open-Source-Implementierungen im World Wide Web Consortium (W3C) und der Bytecode Alliance bei. 

Erfahren Sie mehr darüber, wie Fastly Open Source unterstützt und wie Fastly Compute es Entwicklern ermöglicht, mühelos die besten Erlebnisse für Endnutzer zu erstellen. Starten Sie noch heute eine kostenlose Testversion.

Sind Sie bereit, loszulegen?

Treten Sie noch heute mit uns in Kontakt