Le projet Deno développe une plateforme JavaScript sécurisée similaire à Node.js

Disponible lancement du projet Déno 0.33, qui offre une plate-forme de type Node.js pour l'exécution d'applications autonomes en JavaScript et TypeScript qui peut être utilisée pour exécuter des applications sans être liée à un navigateur, comme la création de gestionnaires qui s'exécutent sur le serveur. Deno utilise un moteur JavaScript V8, qui est également utilisé dans Node.js et les navigateurs basés sur le projet Chromium. Code de projet distribué par sous licence MIT. Le projet est développé par Ryan Dahl (Ryan Dahl), créateur de la plateforme JavaScript Node.js.

L'un des principaux objectifs de la création d'un nouveau moteur d'exécution pour JavaScript est de fournir un environnement plus sécurisé. Pour améliorer la sécurité, le moteur V8 est écrit en Rust, ce qui évite de nombreuses vulnérabilités résultant de manipulations de mémoire de bas niveau, telles que l'accès après libération, les déréférences de pointeurs nuls et les dépassements de mémoire tampon. La plateforme permet de traiter les demandes en mode non bloquant Tokio, également écrit en Rust. Tokio vous permet de créer des applications hautes performances basées sur une architecture basée sur les événements, prenant en charge le multithread et traitant les requêtes réseau en mode asynchrone.

principal caractéristiques Déno :

  • Configuration par défaut orientée sécurité. L'accès aux fichiers, la mise en réseau et l'accès aux variables d'environnement sont désactivés par défaut et doivent être explicitement activés ;
  • Prise en charge intégrée du langage TypeScript en plus de JavaScript ;
  • Le runtime se présente sous la forme d’un seul fichier exécutable autonome (« deno »). Pour exécuter des applications utilisant Deno, il suffit télécharger pour sa plateforme un fichier exécutable, d'une taille d'environ 10 Mo, qui n'a pas de dépendances externes et ne nécessite aucune installation particulière sur le système ;
  • Lors du démarrage du programme, ainsi que pour charger des modules, vous pouvez utiliser l'adressage URL. Par exemple, pour exécuter le programme Welcome.js, vous pouvez utiliser la commande « deno https://deno.land/std/examples/welcome.js ». Le code des ressources externes est téléchargé et mis en cache sur le système local, mais n'est jamais automatiquement mis à jour (la mise à jour nécessite d'exécuter explicitement l'application avec l'indicateur « --reload ») ;
  • Traitement efficace des requêtes réseau via HTTP dans les applications ; la plateforme est conçue pour créer des applications réseau hautes performances ;
  • La possibilité de créer des applications Web universelles qui peuvent être exécutées à la fois dans Deno et dans un navigateur Web classique ;
  • En plus du runtime, la plateforme Deno fait également office de gestionnaire de packages et vous permet d'accéder aux modules par URL dans le code. Par exemple, pour charger un module, vous pouvez spécifier dans le code « import * as log from « https://deno.land/std/log/mod.ts ». Les fichiers téléchargés depuis des serveurs externes via une URL sont mis en cache. La liaison aux versions du module est déterminée en spécifiant les numéros de version dans l'URL, par exemple « https://unpkg.com/[email protected]/dist/liltest.js";
  • La structure comprend un système intégré d'inspection des dépendances (la commande « deno info ») et un utilitaire de formatage du code (deno fmt).
  • Pour les développeurs d'applications suggéré un ensemble de modules standards qui ont subi un audit supplémentaire et des tests de 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 packages npm
    et n'est pas lié aux référentiels, les modules sont adressés via une URL ou par un chemin de fichier, et les modules eux-mêmes peuvent être placés sur n'importe quel site Web ;

  • Deno n'utilise pas « package.json » pour définir des modules ;
  • Différence API, toutes les actions asynchrones dans Deno renvoient une promesse ;
  • Deno nécessite une définition explicite de toutes les autorisations nécessaires pour les fichiers, le réseau et les variables d'environnement ;
  • Toutes les erreurs qui ne sont pas fournies avec les gestionnaires entraînent la résiliation de l'application ;
  • Deno utilise le système de modules ECMAScript et ne prend pas en charge require().

Source: opennet.ru

Ajouter un commentaire