Проект Deno развивает защищённую JavaScript-платформу, похожую на Node.js

Disponible lancement du projet Deno 0.33, offrant une plateforme similaire à Node.js pour l'exécution isolée d'applications en JavaScript et TypeScript, qui peut être utilisée pour exécuter des applications sans lien avec un navigateur, par exemple pour créer des gestionnaires fonctionnant sur un serveur. Deno utilise un moteur JavaScript V8, qui est également utilisé dans Node.js et les navigateurs basés sur le projet Chromium. Le code du projet est distribué est sous licence MIT. Le projet est développé par Ryan Dahl (Ryan Dahl), le créateur de la plateforme JavaScript Node.js.

Un des principaux objectifs de la création de ce nouvel environnement d'exécution pour JavaScript est de fournir un environnement plus sécurisé. Pour améliorer la sécurité, l'enveloppe autour du moteur V8 est écrite en Rust, permettant d'éviter de nombreuses vulnérabilités liées à un travail de bas niveau avec la mémoire, telles que l'accès à une zone de mémoire après sa libération, la déréférenciation de pointeurs nuls et le débordement de tampon. Pour traiter les requêtes de manière non bloquante, la plateforme Tokio, également écrite en Rust. Tokio permet de créer des applications hautes performances basées sur une architecture orientée événements, prenant en charge la multithreading et le traitement des requêtes réseau de manière asynchrone.

Principales caractéristiques Deno :

  • met l'accent sur la sécurité dans la configuration par défaut. Les accès aux fichiers, les capacités réseau et l'accès aux variables d'environnement sont par défaut bloqués et nécessitent une activation explicite ;
  • prise en charge intégrée du langage TypeScript en plus de JavaScript ;
  • Le runtime est fourni sous la forme d'un seul fichier exécutable autonome (« deno »). Pour exécuter des applications avec Deno, il suffit téléchargée pour sa plateforme, un fichier exécutable d'environ 10 Mo, sans dépendances externes et ne nécessitant pas d'installation particulière dans le système ;
  • Lors de l'exécution d'un programme, ainsi que pour le chargement de modules, l'adressage via URL peut être utilisé. Par exemple, pour exécuter le programme welcome.js, la commande « deno https://deno.land/std/examples/welcome.js » peut être utilisée. Le code provenant de ressources externes est téléchargé et mis en cache sur le système local, mais n'est jamais mis à jour automatiquement (pour une mise à jour, il est nécessaire de lancer explicitement l'application avec le drapeau « --reload »).
  • Traitement efficace des requêtes réseau HTTP dans les applications, la plateforme est conçue pour créer des applications réseau très performantes.
  • Possibilité de créer des applications web universelles pouvant s'exécuter à la fois dans Deno et dans un navigateur web classique.
  • En plus de son environnement d'exécution, la plateforme Deno joue également le rôle de gestionnaire de paquets et permet d'accéder aux modules via URL dans le code. Par exemple, pour charger un module, on peut spécifier dans le code « import * as log from "https://deno.land/std/log/mod.ts". Les fichiers chargés depuis des serveurs externes via une URL sont mis en cache. Les versions des modules sont déterminées par des numéros de version intégrés à l'URL, par exemple « https://unpkg.com/liltest@0.0.5/dist/liltest.js » ;
  • inclut un système d'inspection des dépendances (commande « deno info ») et un utilitaire de formatage de code (deno fmt).
  • Pour les développeurs d'applications a été proposé un ensemble de modules standard, ayant subi un audit supplémentaire et vérifiés pour la compatibilité ;
  • Tous les scripts d'application peuvent être combinés en un seul fichier JavaScript.

Différences avec Node.js :

  • Deno n'utilise pas le gestionnaire de paquets npm
    et ne s'attache pas aux dépôts, l'adressage des modules se fait via URL ou chemin de fichier, et les modules eux-mêmes peuvent être hébergés sur n'importe quel site ;
  • Dans Deno, « package.json » n'est pas utilisé pour définir les modules ;
  • Différence d'API, toutes les actions asynchrones dans Deno retournent une promesse ;
  • Deno exige une déclaration explicite de tous les pouvoirs nécessaires pour les fichiers, le réseau et les variables d'environnement ;
  • Toutes les erreurs non gérées entraînent l'arrêt de l'application ;
  • Deno utilise un système de modules ECMAScript et ne prend pas en charge require().

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster