
Ryan Dahl


Ryan Dahl

Ryan Dahl

Sorti le 13 Mai 2018 avec des ambitions fortes :
📦 Gestion des dépendances sans node_modules et sans package.json.
🔒 API sécurisée.
📌 Support natif pour TypeScript.
🚧 Manque d’outils essentiels (npm absent, API instable).
🏗️ Adoption difficile (modèle d’importation perturbant pour les développeurs Node.js).
🛠️ Écosystème limité (peu de bibliothèques compatibles).
⚡ Performances parfois inférieures à Node.js.
✅ Support total de npm
🔄 Interopérabilité avec Node.js
⚡ Amélioration des performances et réduction de la consommation mémoire
🏗️ Outillage plus complet.
Aucune permission accordée par défaut.
Accès explicite aux ressources système (fichiers, réseau, etc.)
Réduction des failles de sécurité.
# Autoriser la lecture du fichier index.adoc
deno run --allow-read=/slide/index.adoc convert-slides.js
# Autoriser l'écriture dans le dossier courant
deno run --allow-write convert-slides.js
# Autoriser l'accès à github.com et jsr.io
deno run --allow-net=github.com,jsr.io convert-slides.js
# Autoriser l'accès aux variables d'environnement HOME et FOO
deno run --allow-env=HOME,FOO convert-slides.js
# Autoriser l'exécution des commandes curl et whoami
deno run --allow-run="curl,whoami" convert-slides.js✅ Support total de npm
🔄 Interopérabilité avec Node.js ( possibilité d’utiliser node_modules et package.json )
// import directement dans le code
import express from "npm:express";
const app = express();
app.get("/", (req, res) => res.send("Hello Deno + npm!"));
app.listen(3000);Deno peut maintenant exécuter des modules CommonJS
Plus besoin de wrapper des anciennes bibliothèques npm
Amélioration majeure pour la compatibilité avec l’écosystème Node.js
// Importation d'un module CommonJS classique
import react from "npm:react";Plus besoin de configurer des outils externes, tout est intégré !
# Détection des erreurs potentielles
deno lint mon_script.ts
# Formatage automatique du code
deno fmt mon_script.ts
# Génère la documentation
deno doc ./path/to/module.ts
# Lance les tests unitaires
deno test mon_script_test.tsFramework de tests intégré.
Compatible avec BDD (describe/it).
Exécutable sans dépendances externes.
import { describe, it } from "jsr:@std/testing/bdd";
import { expect } from "jsr:@std/expect";
import { add } from "./add.js";
describe("add function", () => {
it("should add two numbers correctly", () => {
expect(add(2, 3)).toBe(5);
});
});Serverless & ultra-rapide
Intégration avec GitHub, AWS, GCP, Azure
deno deploy --project=mon-projet api/hello.ts
Moins d’utilisateurs et de contributions que Node.js
Compatibilité npm en progression, mais encore partielle
Performance parfois inférieure à Bun et Node.js
Deno propose une alternative moderne et sécurisée à Node.js.
De nombreux outils et frameworks sont déjà disponibles.
Mais doit convaincre la communauté.
