Wasm3 entre en phase de maintenance minimale
(github.com/wasm3)- Wasm3 est un interpréteur WebAssembly rapide et vise à être un runtime WASM généraliste, mais il cesse le développement de nouvelles fonctionnalités et entre en phase de maintenance minimale
- Le développeur explique qu’il ne peut plus poursuivre le développement de nouvelles fonctionnalités après la destruction de sa maison lors de l’invasion russe, mais qu’il maintiendra le projet en vie et examinera/fusionnera les Pull Request reçues
wasm3passe la WebAssembly spec testsuite et peut exécuter de nombreuses applicationsWASI; les exigences minimales utiles sont d’environ 64 KB de code et 10 KB de RAM- Il prend en charge de nombreuses architectures comme x86, x86_64, ARM, RISC-V, PowerPC, MIPS, Xtensa et ARC32, ainsi que Linux, Windows, OS X, FreeBSD, Android, iOS, les MCU, les navigateurs, et peut même s’exécuter lui-même
- L’approche interprétée offre des avantages en taille d’exécutable, consommation mémoire, latence de démarrage, portabilité, sécurité et facilité d’intégration ; dans des environnements comme iOS ou WebAssembly lui-même, où il est impossible de créer des pages de code exécutables à l’exécution, le JIT ne peut pas être utilisé
Changement d’état de maintenance
- Wasm3 entre en phase de maintenance minimale
- Il devient difficile de poursuivre le développement de nouvelles fonctionnalités
- Le projet sera maintenu, et les Pull Request reçues seront examinées et fusionnées activement
- Les contributions de la communauté deviennent plus importantes qu’auparavant
- Le développeur indique qu’il ne peut actuellement plus continuer à développer de nouvelles fonctionnalités après la destruction de sa maison lors de l’invasion russe
Ce que propose Wasm3
- Wasm3 vise à être un interpréteur WebAssembly rapide et un runtime WASM généraliste
- Les affirmations de performance s’appuient sur CoreMark 1.0 et sur des benchmarks indépendants
- Les performances réelles peuvent varier selon l’environnement
- De nombreux langages et environnements peuvent aussi l’utiliser comme bibliothèque
Environnements d’exécution et exigences
wasm3passe la WebAssembly spec testsuite- Il peut exécuter de nombreuses applications
WASI - Les exigences minimales utiles du système sont les suivantes
- Code : environ 64 KB
- RAM : environ 10 KB
- La plage d’architectures prises en charge est large
x86,x86_64,ARM,RISC-V,PowerPC,MIPS,Xtensa,ARC32, etc.
- Les plateformes et environnements pris en charge sont également variés
- Linux, Windows, OS X, FreeBSD, Android, iOS
- Routeurs et modems basés sur OpenWrt, Yocto et Buildroot
- SBC comme Raspberry Pi et Orange Pi
- MCU comme Arduino, ESP8266, ESP32 et Particle
- Exécution possible dans le navigateur via WebAssembly lui-même
- Self-hosting possible, où
wasm3exécutewasm3
Prise en charge des fonctionnalités WebAssembly
- Fonctionnalités proposées de WebAssembly prises en charge
- Import/Export of Mutable Globals
- Non-trapping float-to-int conversions
- Sign-extension operators
- Multi-value
- Prise en charge partielle de Bulk memory operations
- Custom page size
- Fonctionnalités supplémentaires
- Traçage d’exécution structuré
- Prise en charge des systèmes Big-Endian
- Self-hosting de Wasm et WASI
- Gas metering
- Limite de mémoire linéaire : moins de 64KiB
- Certains éléments sont encore en cours ou non pris en charge
- En cours : Multiple memories, Reference types
- Non pris en charge : Tail call optimization, Fixed-width SIMD, Exception handling, Stack Switching
Pourquoi choisir un interpréteur et le WASM embarqué
- La vitesse n’est pas toujours l’exigence principale, et l’approche interprétée présente des avantages dans de nombreux cas
- Elle peut améliorer la taille de l’exécutable du runtime, l’usage mémoire et la latence de démarrage
- Elle facilite l’obtention et le maintien de la portabilité et de la sécurité
- Une bibliothèque simple comme Wasm3 est facile à compiler et à intégrer dans un projet existant, et la compilation se termine en quelques secondes
- Sur certaines plateformes, le JIT ne peut pas être utilisé
- Sur iOS et dans WebAssembly lui-même, il est impossible de créer à l’exécution des pages de code exécutables
- Les raisons d’exécuter du WASM sur des appareils embarqués sont également évoquées
- Wasm3 a commencé comme projet de recherche, et l’évaluation du moteur dans divers environnements fait partie de cette recherche
- Alors que des MCU exécutent déjà
Lua,JS,Python,Lisp, etc.,WebAssemblypeut aussi constituer une alternative - WebAssembly fournit une séparation de la toolchain ainsi qu’un environnement entièrement sandboxé, bien défini et prévisible
- Parmi les cas d’usage pratiques figurent l’edge computing, le scripting, les systèmes de plugins, les
IoT ruleset les smart contracts
Documents de référence et licence
- Documents principaux
- Ressources associées
- Le projet est distribué sous MIT License
1 commentaires
Commentaires Hacker News
Comme c’est un compte anonyme, je peux le dire sans avoir l’impression de me vanter : j’ai fait ce que je pouvais, en donnant, en signalant des trolls, en répondant à la désinformation, en mettant la pression sur des responsables politiques, etc. Malgré tout, j’ai encore l’impression d’avoir une dette envers les Ukrainiens
Vous n’êtes pas seul, et j’aimerais que d’autres fassent eux aussi de petits gestes : solliciter des responsables politiques, aider par des dons les civils et les héros du front, signaler la désinformation, etc.
J’espère que Volodymyr tiendra bon pendant qu’il tente de maintenir le projet malgré l’invasion de l’Ukraine par la Russie, et que la guerre prendra bientôt fin
Ses performances sont très bonnes, et la beauté de son architecture comme de son code est vraiment impressionnante
Le tweet lié date de septembre 2022 et montre une vidéo de la maison détruite, avec un appel aux dons pour ceux qui souhaitent aider
L’UE devrait débloquer davantage d’argent pour aider l’Ukraine