Deno 1.0, la plataforma segura de JavaScript de NODE.JS

Els desenvolupadors de NODE.JS van donar a conèixer fa poc el llançament de la primera versió significativa de deno 1.0 la qual arriba després de dos anys de desenvolupament. aquesta és una plataforma per a l'execució separada d'aplicacions en JavaScript i TypeScript, Que es pot utilitzar per crear controladors que s'executen en el servidor. deno no és una branca de NODE.JS, sinó que és un nou projecte creat des de zero.

A l'igual que NODE.JS, Deno utilitza el motor V8 JavaScript, Que també s'usa en navegadors basats en Chromium.  La motivació clau per crear la nova plataforma estigui habilitat va ser el desig d'eliminar els errors conceptuals comesos en l'arquitectura NODE.JS i proporcionar als usuaris un entorn més segur.

Per augmentar la seguretat, l'enllaç al voltant de l'motor V8 està escrit en el llenguatge Rust, el que evita moltes vulnerabilitats que sorgeixen a causa de la feina de baix nivell amb la memòria, com accedir a una àrea de memòria després que s'allibera, fer referència a punters nuls i sortir dels límits de la memòria intermèdia.

El codi de el projecte es distribueix sota la llicència MIT i compta amb compilacions preparades per a Linux, Windows i macOS.

Novetats d'Deno 1.0

Aquesta nova versió de la plataforma, es destaca l'estabilització de l'API en l'espai de noms Deno, Que són responsables de la interacció de les aplicacions amb el sistema operatiu. Les interfícies de programari que encara no són estables estan ocultes per defecte i només estan disponibles quan s'inicien en la manera inestable.

A mesura que es formin noves versions, com API es tornaran gradualment estables. L'API en l'espai de noms global, que inclou funcions comunes com setTimeout () i fetch (), està el més a prop possible de l'API dels navegadors web comuns i està desenvolupada d'acord amb els estàndards web per navegadors. Les API de Rust que s'usen directament en el codi de la plataforma, així com la interfície per desenvolupar complements per al temps d'execució de Deno, encara no són estables i continuen evolucionant.

A més, es destaca ell va treballar en l'orientació de seguretat en la configuració per defecte en l'accés als arxius, les capacitats de xarxa i l'accés a les variables d'entorn estan bloquejats per defecte i requereixen una inclusió explícita. Per defecte, les aplicacions s'executen en entorns aïllats de sandbox i no poden accedir a les capacitats de sistema sense privilegis explícits.

D'altra banda s'esmenta en l'anunci de la nova versió el suport natiu per TypeScript a més de JavaScript. Per verificar els tipus i generar JavaScript, s'utilitza el compilador TypeScript estàndard, el que condueix a una reducció de l'rendiment en comparació amb l'anàlisi de JavaScript en V8. En el futur, està previst preparar la nostra pròpia implementació de sistema de verificació de tipus TypeScript, el que ens permetrà augmentar significativament el rendiment de l'processament de TypeScript.

El runtime ve en forma d'un sol executable autònom ( «Deno»). Per executar aplicacions usant Deno, és suficient descarregar un arxiu executable per a la seva plataforma, d'aproximadament 20 MB de grandària, sense dependències externes i que no requereixi cap instal·lació especial en el sistema. A el mateix temps, deno no és una aplicació monolítica, sinó una col·lecció de paquets de caixes a Rust (deno_core, rusty_v8) que es poden usar per separat.

A més de l'runtime, la plataforma Deno també actua com a administrador de paquets i permet accedir als mòduls per URL dins el codi. Els arxius descarregats de servidors externs per URL s'emmagatzemen en memòria cau. L'enllaç a les versions de la lliçó es determina mitjançant les instruccions números de versió dins de la URL.

De les altres innovacions que es destaquen aquesta versió 1.0:

  • Processament efectiu de sol·licituds de xarxa HTTP en aplicacions, la plataforma està dissenyada per crear aplicacions de xarxa d'alt rendiment.
  • La capacitat de crear aplicacions web universals que poden executar-se tant en Deno com en un navegador web normal.
  • La presència d'un conjunt estàndard de mòduls, l'ús no requereix vinculació a dependències externes. Els mòduls de la col·lecció estàndard també s'han auditat i provat per verificar la seva compatibilitat.
  • L'estructura és un sistema integrat d'inspecció de dependències (comandament «deno info») i una utilitat per formatar el codi (deno fmt)
  • Tots els scripts de l'aplicació es poden combinar en un arxiu JavaScript.

font: https://deno.land