- Ion est un runtime open source conçu pour embarquer un moteur JavaScript dans des applications Rust
- Il permet de mettre en place un système de plugins, le rendu côté serveur (SSR) et un environnement d’exécution de fonctions serverless (FaaS)
- Il fournit une boucle d’événements basée sur Tokio, la prise en charge du multithreading et une API de haut niveau facile à utiliser (comme napi-rs)
- Grâce à une architecture extensible, il est facile d’ajouter une bibliothèque standard, des modules d’extension et des préprocesseurs
- Différences avec les runtimes existants (Node.js, Deno, Bun)
- Node.js : dépend d’une bibliothèque dynamique externe (
libnode), ne permet pas de compiler une bibliothèque statique et ne prend pas en charge la C FFI
- Deno : basé sur Rust, mais l’accès à la bibliothèque standard est fortement couplé à la CLI, ce qui complique la réutilisation
- Bun : ne permet pas l’embarquement lui-même
- Ion.js évite les contraintes d’embarquement de ces runtimes et adopte une architecture légère et composable, offrant une simplicité de déploiement et une API conviviale
- Il permet d’ajouter à un projet Rust un environnement d’exécution JS léger et flexible, et d’appeler JavaScript en toute sécurité dans des serveurs multithreadés ou des outils de build
2 commentaires
Je me demande aussi s’il y aura vraiment souvent l’occasion de s’en servir grâce à l’IA.
Je me dis aussi qu’il ne serait pas plus avantageux de convertir du JS en Rust pour l’utiliser.
Est-ce que ce serait utile quand on veut réutiliser des bibliothèques JS depuis Rust ?
Ça pourrait aussi être utile quand on veut implémenter des fonctionnalités de type processor comme dans filebeat..
https://www.elastic.co/docs/reference/beats/filebeat/processor-script