Andromeda - un runtime JavaScript/TypeScript implémenté en Rust
(tryandromeda.dev)- Basé sur Nova, un moteur JavaScript/WebAssembly écrit en Rust, et sur Oxc, un compilateur JS, il offre une exécution rapide et une grande sûreté
- Prend en charge TypeScript sans configuration, une API Canvas 2D accélérée par GPU, Web Crypto, SQLite, Web Storage et des API Web complètes
- Propose une toolchain intégrée pour les développeurs (REPL, formateur, bundler, compilateur en exécutable autonome) et embarque un LSP, utilisable dans divers éditeurs
- Par rapport à Node.js et Deno, il consomme moins de mémoire et se montre supérieur sur TypeScript, le traitement graphique et la compilation en fichier unique
- Un runtime polyvalent adapté aux applications web de nouvelle génération, à la visualisation de données, aux jeux, aux scripts haute performance, aux services web et au calcul scientifique
Spécifications techniques
- Architecture : runtime basé sur Rust, moteur Nova, modèle multithread, structures de données zero-copy
- Standards du Web : conformité WHATWG Fetch API, W3C Canvas 2D, Web Crypto, TextEncoder/Decoder, WinterTC
- Performances : temps de démarrage inférieur à 10 ms, accélération matérielle, gestion mémoire optimisée et résolution des modules optimisée
- Sécurité : exécution en sandbox, API à permissions, sûreté de Rust, chiffrement sécurisé
- Support des plateformes : Linux, macOS (Intel/Apple Silicon), Windows, Docker, cross-compilation
Comparaison avec Node.js et Deno
- Utilisation mémoire : Andromeda ~12 MB, Node.js ~40 MB, Deno ~25 MB
- TypeScript : Andromeda l’intègre nativement, Node.js nécessite une configuration supplémentaire, Deno le prend en charge nativement
- Graphismes : Andromeda prend en charge Canvas accéléré par GPU, Node.js ne le prend pas en charge, Deno le prend partiellement en charge
- Compilation en fichier unique : Andromeda est natif, Node.js passe par des solutions tierces, Deno l’intègre
- Modèle de sécurité : Andromeda combine sûreté mémoire + permissions, Node.js repose surtout sur des vérifications à l’exécution
8 commentaires
Avec quelque chose comme nodejs, le lier à d'autres applications devient assez fastidieux, donc j'aimerais que ce soit un peu plus simple.
On voit beaucoup de choses liées à Rust en ce moment...
Même Bun est encore loin d’être compatible à 100 % avec l’API de Node.js, alors combien de temps ça prendra pour celui-ci ?
Le point clé du succès de ce type de projet semble être la manière dont il s’intègre au vaste écosystème des bibliothèques npm... Il faudrait développer avec les mêmes spécifications d’API que Node.js, de sorte qu’il suffise de remplacer le runtime... Si cela permet de minimiser le coût des modifications sur les codebases existantes, déjà en développement ou en production, tout en restant compatible... Après, à la base, Node.js non plus ne consomme pas tant de mémoire que ça, haha.
C’est donc un runtime JavaScript qui n’utilise pas V8 ? Waouh
https://fr.news.hada.io/topic?id=17845
L’article ci-dessus explique ce moteur !
Pourquoi il n'y a rien sur Bun...
,Oui, c'est aussi ce que je me suis dit en premier en lisant ça.