Contexte et décision
Ryan Dahl a annoncé que l’équipe Deno intègre Cloudflare. Le runtime Deno sera progressivement arrêté sur une année, tandis que le registre JSR continuera à fonctionner sur l’infrastructure de Cloudflare. Le travail de migration consiste à fusionner le composant celld de Deno dans le moteur workerd de Cloudflare, déjà open‑source depuis 2022.
Évolution technique du runtime Deno
Deno 1.0, publié en 2020, reposait sur des principes stricts : permissions refusées par défaut, prise en charge native de TypeScript, API web standard côté serveur, modules ES uniquement, exécutable unique et importations via URL sans npm ni node_modules. Entre 2020 et 2024, ces contraintes ont été assouplies. D’abord, le fichier deps.ts a servi de manifeste implicite, suivi de lock.json introduisant un hachage d’intégrité par URL, puis des import maps permettant de réutiliser des spécificateurs courts. En 2022, face à la montée de Bun, Deno a annoncé le support npm, promettant 80‑90 % de compatibilité avec les paquets npm en trois mois. Cette promesse a été tenue avec Deno 2, sorti en octobre 2024, qui offre une compatibilité complète avec Node et npm, transformant Deno en une alternative capable d’exécuter l’ensemble de l’écosystème npm.
Répercussions sur Node et les standards
Le « press‑and‑release » de Deno a contraint Node à intégrer plusieurs fonctionnalités initialement absentes. Depuis 2018, Node propose un fetch global, les API WebSocket, Web Streams et Web Crypto, un test runner stable, les options --watch et --env-file, des builds monolithiques, un modèle de permissions et le stripping de types par défaut. Ces ajouts reflètent une réponse directe aux innovations introduites par Deno et Bun. Parallèlement, la pression concurrentielle a accéléré la création du groupe de travail WinterCG (2022), qui harmonise les API communes entre runtimes, garantissant une base standardisée pour les futures implémentations.
Perspectives pour les gestionnaires de paquets
Le paysage des gestionnaires de paquets a également évolué. Yarn (2016) a introduit le verrouillage des dépendances (yarn.lock), npm 5 (2017) a suivi avec package-lock.json, et pnpm a réduit la duplication des fichiers node_modules. Bun, lancé en juillet 2022, a mis l’accent sur la rapidité d’installation, forçant les autres runtimes à optimiser leurs processus. Un changement notable concerne les scripts d’installation : pnpm et Bun les désactivent par défaut, une pratique adoptée par npm 12 après plusieurs incidents de chaîne d’approvisionnement en 2024. Le registre JSR, hébergé par Cloudflare, propose une publication de code TypeScript, impose les modules ES et génère automatiquement la documentation, offrant une alternative légère aux registres npm classiques.