WebAssembly (Wasm) ist eine virtuelle Befehlssatzarchitektur (Instruction Set Architecture, ISA), die mit nahezu nativer Geschwindigkeit ausgeführt werden kann. Einer der großen Vorteile von Wasm ist, dass es über eine eigene integrierte Isolierung verfügt, die die Sicherheit der Systeme gewährleistet.
Aber was bedeutet das konkret? Es bedeutet, dass Entwickler Programme in jeder beliebigen Quellsprache schreiben können, die sich zu WebAssembly kompilieren lässt (oder in interpretierten Sprachen wie JavaScript, bei denen der Interpreter für WebAssembly kompiliert werden kann). Dieser kompilierte Binärcode kann anschließend auf sichere Weise auf vielen verschiedenen Systemen ausgeführt werden.
Da WebAssembly an keine bestimmte Programmiersprache gebunden ist, ergeben sich für Entwickler viele Vorteile, darunter:
Mehr Flexibilität bei der Wahl der Sprache, die die von ihnen erstellte Anwendung am besten unterstützt.
Abstimmung der Sprachwahl auf die Fachkenntnisse der Entwickler, was besonders für Unternehmen mit mehreren Entwicklerteams sinnvoll ist, in denen unterschiedliche Teams unterschiedlich stark mit bestimmten Programmiersprachen vertraut sind.
Möglichkeit, bestehende Code Bases, die in verschiedenen Programmiersprachen geschrieben wurden, wiederzuverwenden und sie zu WebAssembly zu kompilieren.
Zugang zu einem Ökosystem aus verschiedenen Tools, Bibliotheken und Frameworks. Besser noch: Es gibt Community-Initiativen und Open-Source-Projekte, die zum kontinuierlichen Wachstum des Ökosystems beitragen, um Entwicklern mehr Ressourcen und Optionen zur Verfügung zu stellen.
WebAssembly wurde ursprünglich für Webbrowser-Anwendungen entwickelt, damit Nutzer Code mit hoher Performance oder hohe Workloads wie Bildbearbeitungsprogramme und Videospiele im Browser ausführen können. Es dauerte jedoch nicht lange, bis die Entwickler erkannten, wie nützlich WebAssembly auch außerhalb des Browsers ist. Zum Beispiel wird WebAssembly zunehmend für die serverseitige Entwicklung genutzt.
Zusätzlich zu den bereits genannten Vorteilen profitieren Entwickler, die WebAssembly außerhalb des Browsers verwenden, von Folgendem:
Bessere Performance – WebAssembly kann direkt zu Maschinencode kompiliert werden. Dies macht es zur perfekten Wahl für Entwickler, die Anwendungen erstellen oder Workloads verarbeiten, die eine schnelle Ausführung erfordern.
Mehr Sicherheit – WebAssembly-Laufzeiten verwenden oft Sandboxing, das die WebAssembly Module isoliert und verhindert, dass sie die Ausführung anderer Programme beeinflussen oder auf sensible Systemressourcen zugreifen. Außerdem haben WebAssembly Module nur begrenzte Kontrolle über den Speicher, was es ihnen erschwert, Daten zu beschädigen oder Speicherlecks zu verursachen.
Eine Laufzeitumgebung kann man sich wie eine Maschine vorstellen, die WebAssembly Code ausführt. Sie interpretiert oder übersetzt den Code in etwas, das ein Computer oder Server verstehen kann. Heutzutage gibt es viele verschiedene Laufzeitumgebungen, die jeweils unterschiedliche Stärken haben und unterschiedliche Anwendungsfälle unterstützen. Hier einige der beliebtesten Optionen:
Wasmtime: Wasmtime ist eine sichere und leistungsstarke Open-Source-Laufzeitumgebung, die von der Bytecode Alliance entwickelt wurde. Wasmtime ist mit WASI (WebAssembly System Interface) kompatibel, das einen Standard für die Ausführung von Wasm Modulen außerhalb des Browsers definiert. Außerdem unterstützt Wasmtime mehrere Programmiersprachen und eignet sich für eine Vielzahl von Anwendungsfällen.
Browser-Laufzeitumgebungen: Wie der Name schon sagt, sind diese Laufzeitumgebungen für die Verwendung im Webbrowser ausgelegt. Beispiele für Laufzeitumgebungen, die in Browsern funktionieren, sind die JavaScript und WebAssembly Engine V8 für Google Chrome und die JavaScript und WebAssembly Engine SpiderMonkey für Mozilla Firefox.
Fastly hat durch die frühe Zusammenarbeit mit WebAssembly und der Bytecode Alliance den Grundstein für unsere Edge-Plattform gelegt. Die Compute Plattform von Fastly führt WebAssembly Programme aus, die aus anderen Sprachen wie Rust, JavaScript und Go kompiliert werden. Die Unterstützung von WebAssembly (Wasm) unterstreicht unser Engagement für einen kollaborativen Open-Source-Standard. Ein Beispiel für diese Zusammenarbeit ist Wasmtime, eine schnelle und sichere Laufzeitumgebung für WebAssembly. Wir bei Fastly sind davon überzeugt, dass WebAssembly als Grundlage unserem Compute Angebot mit der Zeit sehr zugutekommen wird, da wir mit anderen Mitgliedern der Bytecode Alliance zusammenarbeiten, um ein sichereres und leistungsfähigeres Compute-Ökosystem auf Basis gemeinsamer Standards zu schaffen.
Starten Sie noch heute mit Fastly Compute und erfahren Sie in unserem Developer Hub mehr. Sehen Sie sich auch dieses spannende Video von Lin Clark (Senior Principal Engineer bei Fastly und Mitbegründerin der Bytecode Alliance) an, um mehr über die Zukunft von WebAssembly bei Fastly zu erfahren.