1 Punkte von GN⁺ 2023-12-19 | 1 Kommentare | Auf WhatsApp teilen
  • Wasm3 versteht sich als schneller WebAssembly-Interpreter und allgemeine WASM-Runtime, stellt jedoch die Entwicklung neuer Funktionen ein und geht in eine Phase minimaler Wartung über
  • Der Entwickler erklärte, dass er nach der Zerstörung seines Hauses durch die russische Invasion keine neuen Funktionen mehr weiterentwickeln könne; das Projekt solle aber am Leben bleiben, eingehende Pull Requests würden geprüft und gemergt
  • wasm3 besteht die WebAssembly spec testsuite und kann viele WASI-Apps ausführen; die minimal sinnvollen Systemanforderungen liegen bei etwa 64 KB Code und etwa 10 KB RAM
  • Unterstützt werden zahlreiche Architekturen wie x86, x86_64, ARM, RISC-V, PowerPC, MIPS, Xtensa und ARC32 sowie Linux, Windows, OS X, FreeBSD, Android, iOS, MCUs, Browser und sogar die Ausführung seiner selbst
  • Der Interpreter-Ansatz hat Vorteile bei Größe der ausführbaren Datei, Speicherverbrauch, Startlatenz, Portabilität, Sicherheit und Integrationsaufwand; in Umgebungen wie iOS oder WebAssembly selbst, in denen zur Laufzeit keine Code Pages erzeugt werden können, ist JIT nicht nutzbar

Änderung des Wartungsstatus

  • Wasm3 geht in eine Phase minimaler Wartung über
    • Die Entwicklung neuer Funktionen ist derzeit kaum fortzuführen
    • Das Projekt wird weiter gepflegt; eingehende Pull Requests sollen aktiv geprüft und gemergt werden
    • Beiträge aus der Community werden wichtiger als zuvor
  • Der Entwickler erklärte, dass er nach der Zerstörung seines Hauses durch die russische Invasion derzeit keine neuen Funktionen weiterentwickeln könne

Was Wasm3 bietet

Ausführbare Umgebungen und Anforderungen

  • wasm3 besteht die WebAssembly spec testsuite
  • Es kann viele WASI-Apps ausführen
  • Die minimal sinnvollen Systemanforderungen sind:
    • Code: etwa 64 KB
    • RAM: etwa 10 KB
  • Die Bandbreite der unterstützten Architekturen ist groß
    • x86, x86_64, ARM, RISC-V, PowerPC, MIPS, Xtensa, ARC32 usw.
  • Auch die unterstützten Plattformen und Umgebungen sind vielfältig
    • Linux, Windows, OS X, FreeBSD, Android, iOS
    • Router und Modems auf Basis von OpenWrt, Yocto und Buildroot
    • SBCs wie Raspberry Pi und Orange Pi
    • MCUs wie Arduino, ESP8266, ESP32 und Particle
    • Ausführung im Browser über WebAssembly selbst möglich
    • Auch Self-Hosting, bei dem wasm3 wasm3 ausführt, ist möglich

Unterstützung von WebAssembly-Funktionen

  • Unterstützte WebAssembly-Proposals
    • Import/Export of Mutable Globals
    • Non-trapping float-to-int conversions
    • Sign-extension operators
    • Multi-value
    • Bulk memory operations werden teilweise unterstützt
    • Custom page size
  • Zusätzliche Funktionen
    • Strukturierte Ausführungstraces
    • Unterstützung für Big-Endian-Systeme
    • Self-Hosting von Wasm und WASI
    • Gas metering
    • Begrenzung des linearen Speichers: unter 64 KiB
  • Einige Punkte sind noch in Arbeit oder werden nicht unterstützt
    • In Arbeit: Multiple memories, Reference types
    • Nicht unterstützt: Tail call optimization, Fixed-width SIMD, Exception handling, Stack Switching

Warum einen Interpreter wählen, und Embedded WASM

  • Geschwindigkeit ist nicht immer die zentrale Anforderung; der Interpreter-Ansatz hat in verschiedenen Situationen Vorteile
    • Größe der Runtime-Binary, Speicherverbrauch und Startlatenz können verbessert werden
    • Portabilität und Sicherheit lassen sich leichter erreichen und erhalten
    • Eine einfache Library wie Wasm3 lässt sich leicht in bestehende Projekte kompilieren und integrieren; Builds sind in wenigen Sekunden abgeschlossen
  • Auf einigen Plattformen kann JIT nicht genutzt werden
    • Unter iOS und in WebAssembly selbst können zur Laufzeit keine ausführbaren Code Pages erzeugt werden
  • Es werden auch Gründe genannt, WASM auf Embedded-Geräten auszuführen
    • Wasm3 begann als Forschungsprojekt; die Evaluierung der Engine in verschiedenen Umgebungen ist Teil der Forschung
    • Wenn auf MCUs bereits Lua, JS, Python, Lisp usw. laufen, kann auch WebAssembly eine Alternative sein
    • WebAssembly bietet eine Trennung der Toolchain sowie eine vollständig sandboxed, gut definierte und vorhersagbare Umgebung
    • Praktische Beispiele sind Edge Computing, Scripting, Plugin-Systeme, IoT rules und Smart Contracts

Referenzen und Lizenz

1 Kommentare

 
GN⁺ 2023-12-19
Kommentare auf Hacker News
  • Ich bin OP und bereit, Fragen zu beantworten
    • Hat zwar nichts mit dem Wasm-Projekt zu tun, aber ich hoffe, dass du und deine Freunde und Familie in Sicherheit sind. Ruhm der Ukraine, und die Besatzer sollen verschwinden
    • Als frühes NAFO-Mitglied sende ich Unterstützung
      Da dies ein anonymer Account ist, kann ich es sagen, ohne dass es sich wie Prahlerei anfühlt: Ich habe getan, was ich konnte – gespendet, Trolle gemeldet, Desinformation entgegengewirkt und Druck auf Politiker ausgeübt. Trotzdem habe ich immer noch das Gefühl, den Menschen in der Ukraine etwas schuldig zu sein
      Du bist nicht allein, und ich hoffe, dass auch andere kleine Dinge tun – Politiker anschreiben, mit Spenden Zivilisten und Helden an der Front unterstützen oder Desinformation melden
    • Bist du im Moment sicher?
    • Hast du Zeit zum Ausruhen oder für etwas Schönes, oder stehst du ständig nur unter Stress?
  • Im Twitter-Post von Wasm3 gibt es mehr Kontext: https://x.com/wasm3_engine/status/1736712528883769670?s=20
  • Ehrlich gesagt macht mich diese Nachricht traurig. Wasm3 war ein hervorragender Wasm-Interpreter, der bei der Performance vorne lag: etwa 3- bis 5-mal langsamer als nativ, aber rund 3-mal schneller als typische Wasm-Interpreter
    Ich hoffe, Volodymyr hält gut durch, während er trotz Russlands Invasion der Ukraine versucht, das Projekt weiter zu pflegen, und dass der Krieg bald endet
    • Stimme zu. Einer der besten WASM-Interpreter, und meiner Ansicht nach sogar besser als manche Runtimes, die man hier und da bekommt
      Die Performance ist sehr gut, und die Eleganz der Architektur und des Codes ist definitiv beeindruckend
  • Die Erklärung lautet: Weil Russland einmarschiert ist und sein Haus zerstört wurde, geht Wasm3 in eine Phase minimaler Wartung über. Neue Features können nicht weiterentwickelt werden, aber eingehende Pull Requests werden aktiv geprüft und gemergt, um das Projekt am Leben zu halten
    Der verlinkte Tweet stammt aus dem September 2022, zeigt ein Video des zerstörten Hauses und bittet Menschen, die helfen möchten, um Spenden
    • Das ist furchtbar. Slava Ukraini
    • Um Regen und Schnee abzuhalten, braucht dieses Haus offenbar so schnell wie möglich ein neues Dach
    • Ich hatte wirklich gehofft, dass inzwischen jemand innerhalb Russlands Putin beseitigt hätte. Ich glaube, es gibt ziemlich viele Leute, die ihn nicht unbedingt mögen
      Die EU sollte mehr Geld bereitstellen, um der Ukraine zu helfen