Wasmer 5.0 ist jetzt verfügbar, ein Toolkit zur Erstellung von Anwendungen auf Basis von WebAssembly.

Die neue Version des Projekts Wasmer 5.0 wurde vorgestellt, das ein Runtime für die Ausführung von WebAssembly-Modulen entwickelt hat. Es kann verwendet werden, um plattformübergreifende Anwendungen zu erstellen, die in verschiedenen Betriebssystemen ausgeführt werden können. Wasmer kann auch für die isolierte Ausführung von nicht vertrauenswürdigen Codeblöcken in regulären Anwendungen genutzt werden. Der Code des Projekts ist in Rust geschrieben und unter der MIT-Lizenz veröffentlicht.

Die Möglichkeit, eine Anwendung auf verschiedenen Plattformen auszuführen, wird durch die Kompilierung in niedrige Zwischen-Kodierung von WebAssembly realisiert, die in jedem Betriebssystem ausgeführt oder in Programme in anderen Programmiersprachen integriert werden kann. Die Programme sind leichtgewichtige Container, in denen Pseudo-Code von WebAssembly ausgeführt wird. Diese Container sind nicht an das Betriebssystem gebunden und können Code enthalten, der ursprünglich in jeder Programmiersprache geschrieben wurde.

Für die Ausführung von Zwischen-Code von WebAssembly oder dessen Übersetzung in den Maschinen-Code der Zielplattform werden verschiedene Backends angeboten:

  • Ein auf dem Singlepass-Compiler basierendes Backend, das optimal für den Einsatz in Blockchains geeignet ist.
  • Ein auf dem Cranelift-Codegenerator basierendes Backend, das ideal für Entwicklungsprozesse ist.
  • Ein auf dem LLVM-Compiler basierendes Backend, das sich optimal für produktive Implementierungen eignet.
  • Ein Backend für den Einsatz im Webbrowser.
  • Ein auf der JavaScript-Engine JavascriptCore basierendes Backend, das optimal für die macOS-Plattform ist.
  • Ein auf der JavaScript-Engine V8 basierendes Backend, das für Anwendungen auf iOS- und Android-Plattformen optimiert ist.
  • Ein auf dem Wasmi-Interpreter basierendes Backend, das sich ideal für Blockchains und Rust-Projekte eignet, die keine Standardbibliothek (nostd) verwenden.
  • Ein auf dem WAMR-Runtime basierendes Backend, das optimal für die iOS-Plattform geeignet ist.

Anwendungen werden von dem Hauptsystem in einer Sandbox-Umgebung isoliert und haben nur Zugriff auf die deklarierte Funktionalität. Zur Isolation wird ein Mechanismus verwendet, der auf Capability Management basiert – für Aktionen mit jedem der Ressourcen (Dateien, Verzeichnisse, Sockets, Systemaufrufe usw.) müssen der Anwendung die entsprechenden Berechtigungen erteilt werden. Der Zugang und die Interaktion mit dem System werden über die WASI (WebAssembly System Interface) API gewährleistet, die Programmier-Interfaces für die Arbeit mit Dateien, Sockets und anderen Systemfunktionen bietet.

Die Plattform ermöglicht eine Ausführungsleistung von Anwendungen, die der Ausführung nativer Builds nahekommt. Mithilfe des Native Object Engine für WebAssembly-Module kann maschinenlesbarer Code generiert werden, dessen Ausführung nur ein minimales Runtime erfordert, während alle Möglichkeiten der Sandbox-Isolation erhalten bleiben. Es ist möglich, vorkompilierte Programme mit integriertem Wasmer bereitzustellen. Für die Erstellung von Erweiterungen und Add-Ons stehen Rust API und Wasm-C-API zur Verfügung.

Um einen WebAssembly-Container zu starten, genügt es, das Runtime Wasmer im System zu installieren, das ohne externe Abhängigkeiten geliefert wird ("curl https://get.wasmer.io -sSfL | sh") , und die benötigte Datei auszuführen ("wasmer test.wasm"). Programme werden als reguläre WebAssembly-Module verteilt, die mit dem Paketmanager WAPM verwaltet werden können. Wasmer ist auch als Bibliothek erhältlich, die zur Integration von WebAssembly-Code in Programme in den Sprachen Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir und Java verwendet werden kann.

Die wichtigsten Neuerungen von Wasmer 5.0:

  • Die Möglichkeit zur Nutzung von WebAssembly-Interpreter wurde implementiert.
  • Ein experimenteller Backend auf der Basis des leichten Interpreters Wasmi wurde hinzugefügt, der die Ausführung von Zwischen-Code für WebAssembly in ressourcenbeschränkten Umgebungen ermöglicht.
  • Ein experimenteller Backend auf der Basis der WebAssembly-Laufzeit WAMR (WebAssembly Micro Runtime) wurde hinzugefügt, der für minimalen Ressourcenverbrauch optimiert ist und für den Einsatz auf Geräten mit begrenztem RAM geeignet ist.
  • Ein experimenteller Backend auf der Basis des JavaScript-Engines v8, die in Browsern auf der Chromium-Codebasis verwendet wird, wurde hinzugefügt. Das Hauptmerkmal dieses V8-Backends ist die Möglichkeit, den integrierten Debugger und die Tools für Webentwickler zu verwenden, sowie die erweiterte Funktionalität von WebAssembly in V8, darunter Ausnahmebehandlung und Garbage Collection.
  • Der Backend, der LLVM verwendet, hat experimentelle Unterstützung für die Architektur Loongarch64 erhalten.
  • Unterstützung für die iOS-Plattform wurde hinzugefügt und ist verfügbar, wenn die Backends WAMR, Wasmi und V8 verwendet werden.
  • Die Unterstützung des Compilers Emscripten wurde eingestellt.
  • Die Abhängigkeiten wurden aktualisiert, darunter LLVM 18, der Codegenerator Cranelift 27 und das Framework rkyv 0.8.
  • Die Leistung wurde optimiert. Beispielsweise wird bei der Ausführung von Deserialisierungsoperationen eine Leistungssteigerung von bis zu 50 % erzielt.
    Wasmer 5.0 ist jetzt verfügbar, ein Toolkit zur Erstellung von Anwendungen auf Basis von WebAssembly.
    Wasmer 5.0 ist jetzt verfügbar, ein Toolkit zur Erstellung von Anwendungen auf Basis von WebAssembly.
    Wasmer 5.0 ist jetzt verfügbar, ein Toolkit zur Erstellung von Anwendungen auf Basis von WebAssembly.
    Wasmer 5.0 ist jetzt verfügbar, ein Toolkit zur Erstellung von Anwendungen auf Basis von WebAssembly.
    Wasmer 5.0 ist jetzt verfügbar, ein Toolkit zur Erstellung von Anwendungen auf Basis von WebAssembly.
    Wasmer 5.0 ist jetzt verfügbar, ein Toolkit zur Erstellung von Anwendungen auf Basis von WebAssembly.
    Wasmer 5.0 ist jetzt verfügbar, ein Toolkit zur Erstellung von Anwendungen auf Basis von WebAssembly.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster