Deno : le runtime JavaScript et TypeScript aux réglages de sécurité par défaut
Un environnement d'exécution moderne pour JavaScript et TypeScript.
En bref
- De quoi s’agit-il ?
- Un examen du dépôt denoland/deno : architecture V8, Rust et Tokio, six méthodes d'installation, premier serveur avec --allow-net, écosystème JSR et licence MIT.
- À qui s’adresse-t-il ?
- Deno s'adresse aux équipes qui veulent exécuter du TypeScript sans étape de compilation et qui apprécient un contrôle explicite des permissions, comme le montre l'exemple deno run --allow-net server.ts du README. Si votre pile repose sur des paquets npm anciens ou sur des modules natifs non portés, testez d'abord la compatibilité avec un petit service, par exemple le server.ts de la documentation exécuté via curl -fsSL https://deno.land/install.sh | sh.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Rust, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un runtime JavaScript et TypeScript construit sur V8, Rust et Tokio
Le README de denoland/deno présente Deno comme un runtime pour JavaScript, TypeScript et WebAssembly, avec des réglages de sécurité par défaut et une expérience développeur soignée. Trois briques sont nommées : V8, le moteur JavaScript de Chrome, Rust comme langage d'implémentation, et Tokio pour les entrées et sorties asynchrones côté Rust. La métadonnée du dépôt confirme d'ailleurs Rust comme langage dominant du code.
Le terme « secure by default » n'est pas démontré dans le README lui-même : aucune liste de permissions n'y figure. La preuve arrive plus loin, dans l'exemple de serveur, où l'accès réseau doit être accordé explicitement par un drapeau. Cette différence avec l'exécution Node.js classique se voit dès la première commande du tutoriel, pas dans un paragraphe marketing.
À noter aussi : le dépôt affiche 108 335 étoiles et 6 358 forks, avec une branche par défaut nommée main et un dernier push daté du 27 août 2026, signe d'un projet très actif au moment de la rédaction.
Six commandes d'installation, du script curl aux gestionnaires de paquets
Le README documente six voies d'installation. Sous macOS et Linux, une ligne suffit : curl -fsSL https://deno.land/install.sh | sh. Sous Windows PowerShell, c'est irm https://deno.land/install.ps1 | iex. Les gestionnaires de paquets sont couverts par quatre commandes supplémentaires : brew install deno pour Homebrew, choco install deno pour Chocolatey, winget install --id=DenoLand.Deno pour WinGet et scoop install main/deno pour Scoop.
Le README précise que ces options ne sont pas exhaustives et renvoie à la page installation de docs.deno.com pour la liste complète. En revanche, il ne propose ni commande de désinstallation, ni procédure de mise à niveau, ni vérification d'intégrité des binaires téléchargés. Qui veut contrôler ce que fait le script d'installation devra lire son contenu avant de le passer au shell, une précaution ordinaire avec ce type de curl.
Pour les environnements sans accès réseau sortant, la compilation depuis les sources reste possible et passe par un guide dédié dans le fichier de contribution.
Le premier serveur : server.ts et le drapeau --allow-net
L'exemple du README tient en quelques lignes de TypeScript, directement exécutables sans fichier de configuration ni étape de transpilation. Un fichier server.ts contient Deno.serve((_req: Request) => { return new Response("Hello, world!"); }); et se lance avec deno run --allow-net server.ts. Le runtime démarre alors un serveur local sur http://localhost:8000.
Le détail qui compte est le drapeau --allow-net : sans lui, le programme n'ouvrirait pas de socket réseau. Le README mentionne que Deno sert le plus souvent à construire des serveurs web, mais ne pousse pas l'exemple plus loin : ni routage, ni gestion des corps de requête, ni gestion d'erreurs. Ces sujets renvoient à la documentation de docs.deno.com/runtime/manual.
Aucune mesure de performance n'est avancée, et le README ne compare pas Deno aux autres runtimes. L'exemple sert de point d'entrée, pas de démonstration chiffrée.
Bibliothèque standard et registre JSR autour du runtime
Quatre ressources officielles encadrent le runtime. Deno Docs, à docs.deno.com, rassemble les guides et la référence, y compris pour Deno Deploy, la plateforme d'hébergement de l'éditeur. La bibliothèque standard est hébergée sur JSR à l'adresse jsr.io/@std et regroupe des utilitaires courants officiellement pris en charge.
JSR lui-même est présenté comme le registre de paquets open source pour le JavaScript et le TypeScript modernes, ce qui situe la gestion des dépendances dans l'écosystème Deno plutôt que du côté de npm. Le blog développeurs, deno.com/blog, publie les annonces produit et les tutoriels de l'équipe.
Le README affiche aussi des badges vers Discord, Bluesky, YouTube et X, sans détailler leur contenu. Il ne mentionne aucun canal de support commercial ni aucun engagement de réponse, ce que les équipes de production devront chercher ailleurs.
Compiler depuis les sources et contribuer via CONTRIBUTING.md
La compilation depuis les sources est documentée dans .github/CONTRIBUTING.md, à la section building-from-source, que le README lie directement. Le fichier de contribution sert donc de porte d'entrée unique, aussi bien pour construire le binaire que pour proposer une modification.
La section contribution du README se limite à une phrase d'invitation et à ce lien. Ni modèle d'issue, ni code de conduite, ni processus de revue n'y sont décrits ; ces éléments relèvent du dépôt lui-même. Les 1 534 issues ouvertes donnent une idée du volume de traffic à traiter par les mainteneurs.
Pour signaler une faille de sécurité, le README ne donne pas de procédure dédiée ; il faut passer par les canaux du projet plutôt que par une issue publique, comme le veulent les usages du domaine.
Un rythme de versions régulier de la v2.9.4 à la v2.9.6
Les trois dernières versions publiées au moment de la collecte dessinent un calendrier serré : v2.9.4 le 23 juillet 2026, v2.9.5 le 6 août 2026, puis v2.9.6 le 27 août 2026. Trois correctifs en un peu plus d'un mois sur la branche 2.9, sans saut de version majeure.
Ce rythme a deux conséquences pratiques. D'un côté, les corrections arrivent vite et la branche main est alimentée en continu. De l'autre, un environnement de production doit prévoir une politique de mise à jour régulière, faute de quoi l'écart avec les versions prises en charge grandit en quelques semaines.
Les notes de version sur GitHub restent la source de vérité pour connaître le contenu exact de chaque publication ; le README ne les résume pas.
Licence MIT et signaux du dépôt
Le dépôt est publié sous licence MIT. Concrètement, Deno peut être intégré dans des produits commerciaux, modifié et redistribué, à condition de conserver l'avis de copyright et de permission dans les copies substantielles. La licence exclut toute garantie et toute responsabilité des auteurs, ce qui laisse la question du support aux offres commerciales séparées.
Les compteurs du dépôt complètent le tableau : 108 335 étoiles, 6 358 forks, 1 534 issues ouvertes, un dernier push du 27 août 2026 et une page deno.com comme site officiel. Ces chiffres datent de la collecte et évolueront, mais ils situent Deno parmi les projets Rust les plus suivis de GitHub.
Pour un choix technologique, ces signaux pèsent moins que les deux faits structurels du README : un runtime TypeScript sans étape de build, et des permissions réseau ou fichiers qui se demandent explicitement au lancement.
Conclusion éditoriale
Deno s'adresse aux équipes qui veulent exécuter du TypeScript sans étape de compilation et qui apprécient un contrôle explicite des permissions, comme le montre l'exemple deno run --allow-net server.ts du README. Si votre pile repose sur des paquets npm anciens ou sur des modules natifs non portés, testez d'abord la compatibilité avec un petit service, par exemple le server.ts de la documentation exécuté via curl -fsSL https://deno.land/install.sh | sh. Vérifiez aussi le calendrier des versions sur la page Releases, la v2.9.6 étant sortie le 27 août 2026.
Notes de la communauté