El projecte Deno està desenvolupant una plataforma JavaScript segura similar a Node.js

Disponible llançament del projecte deno 0.33, que ofereix una plataforma semblant a Node.js per a l'execució d'aplicacions autònomes en JavaScript i TypeScript que es pot utilitzar per executar aplicacions sense estar lligada a un navegador, com ara crear controladors que s'executen al servidor. Deno utilitza un motor JavaScript V8, que també s'utilitza a Node.js i navegadors basats en el projecte Chromium. Codi del projecte Distribuït per sota llicència MIT. El projecte està desenvolupat per Ryan Dahl (Ryan Dahl), creador de la plataforma JavaScript Node.js.

Un dels objectius principals de crear un nou temps d'execució per a JavaScript és proporcionar un entorn més segur. Per millorar la seguretat, el motor V8 està escrit en Rust, la qual cosa evita moltes de les vulnerabilitats que sorgeixen de la manipulació de la memòria de baix nivell, com ara l'accés lliure posterior, les referències de punters nuls i els sobrepassos de memòria intermèdia. La plataforma s'utilitza per processar sol·licituds en mode sense bloqueig Tòquio, escrit també en Rust. Tokio us permet crear aplicacions d'alt rendiment basades en l'arquitectura basada en esdeveniments, que admet múltiples fils i processa les sol·licituds de xarxa en mode asíncron.

El principal Característiques Deno:

  • Configuració predeterminada orientada a la seguretat. L'accés als fitxers, les xarxes i l'accés a les variables d'entorn estan desactivats per defecte i s'han d'habilitar explícitament;
  • Suport integrat per al llenguatge TypeScript a més de JavaScript;
  • El temps d'execució es presenta en forma d'un únic fitxer executable autònom ("deno"). Per executar aplicacions amb Deno n'hi ha prou penjar per a la seva plataforma un fitxer executable, d'uns 10 MB de mida, que no té dependències externes i no requereix cap instal·lació especial al sistema;
  • En iniciar el programa, així com per carregar mòduls, podeu utilitzar l'adreça URL. Per exemple, per executar el programa welcome.js, podeu utilitzar l'ordre "deno https://deno.land/std/examples/welcome.js". El codi de recursos externs es descarrega i s'emmagatzema a la memòria cau al sistema local, però mai s'actualitza automàticament (l'actualització requereix l'execució explícita de l'aplicació amb el senyalador "--reload");
  • Processament eficient de sol·licituds de xarxa mitjançant HTTP a les aplicacions; la plataforma està dissenyada per crear aplicacions de xarxa d'alt rendiment;
  • La capacitat de crear aplicacions web universals que es poden executar tant a Deno com en un navegador web normal;
  • A més del temps d'execució, la plataforma Deno també actua com a gestor de paquets i us permet accedir als mòduls per URL dins del codi. Per exemple, per carregar un mòdul, podeu especificar al codi "import * com a registre de "https://deno.land/std/log/mod.ts". Els fitxers descarregats des de servidors externs mitjançant l'URL s'emmagatzemen a la memòria cau. La vinculació a les versions del mòdul es determina especificant els números de versió dins de l'URL, per exemple, "https://unpkg.com/[protegit per correu electrònic]/dist/liltest.js";
  • L'estructura inclou un sistema integrat d'inspecció de dependències (l'ordre "deno info") i una utilitat per al format de codi (deno fmt).
  • Per a desenvolupadors d'aplicacions proposat un conjunt de mòduls estàndard que s'han sotmès a auditories addicionals i proves de compatibilitat;
  • Tots els scripts d'aplicació es poden combinar en un sol fitxer JavaScript.

Diferències amb Node.js:

  • Deno no utilitza el gestor de paquets npm
    i no està vinculat als dipòsits, els mòduls s'aborden mitjançant una URL o una ruta de fitxer, i els mòduls es poden col·locar a qualsevol lloc web;

  • Deno no utilitza "package.json" per definir mòduls;
  • Diferència de l'API, totes les accions asíncrones de Deno retornen una promesa;
  • Deno requereix una definició explícita de tots els permisos necessaris per a fitxers, variables de xarxa i d'entorn;
  • Tots els errors que no es proporcionen amb els controladors condueixen a la finalització de l'aplicació;
  • Deno utilitza el sistema de mòduls ECMAScript i no admet require().

Font: opennet.ru

Afegeix comentari