Desde Linux David Naranjo  

Deno 1.0, la plataforma segura de JavaScript de Node.js

Los desarrolladores de Node.js dieron a conocer hace poco el lanzamiento de la primera version significativa de Deno 1.0 la cual llega después de dos años de desarrollo. Esta es una plataforma para la ejecución separada de aplicaciones en JavaScript y TypeScript, que se puede utilizar para crear controladores que se ejecutan en el servidor. Deno no es una rama de Node.js, sino que es un nuevo proyecto creado desde cero.

Al igual que Node.js, Deno usa el motor V8 JavaScript, que también se usa en navegadores basados ​​en Chromium.  La motivación clave para crear la nueva plataforma JavaScript fue el deseo de eliminar los errores conceptuales cometidos en la arquitectura Node.js y proporcionar a los usuarios un entorno más seguro.

Para aumentar la seguridad, el enlace alrededor del motor V8 está escrito en el lenguaje Rust, lo que evita muchas vulnerabilidades que surgen debido al trabajo de bajo nivel con la memoria, como acceder a un área de memoria después de que se libera, hacer referencia a punteros nulos y salir de los límites del búfer.

El código del proyecto se distribuye bajo la licencia MIT y cuenta con compilaciones preparadas para Linux, Windows y macOS.

Novedades de Deno 1.0

Esta nueva version de la plataforma, se destaca la estabilización de la API en el espacio de nombres Deno, que son responsables de la interacción de las aplicaciones con el sistema operativo. Las interfaces de software que aún no son estables están ocultas de manera predeterminada y solo están disponibles cuando se inician en el modo inestable.

A medida que se formen nuevas versiones, tales API se volverán gradualmente estables. La API en el espacio de nombres global, que incluye funciones comunes como setTimeout () y fetch (), está lo más cerca posible de la API de los navegadores web comunes y está desarrollada de acuerdo con los estándares web para navegadores. Las API de Rust que se usan directamente en el código de la plataforma, así como la interfaz para desarrollar complementos para el tiempo de ejecución de Deno, aún no son estables y continúan evolucionando.

Además, se destaca él trabajó en la orientación de seguridad en la configuración predeterminada en el acceso a los archivos, las capacidades de red y el acceso a las variables de entorno están bloqueados de forma predeterminada y requieren una inclusión explícita. Por defecto, las aplicaciones se ejecutan en entornos aislados de sandbox y no pueden acceder a las capacidades del sistema sin privilegios explícitos.

Por otra parte se menciona en el anuncio de la nueva version el soporte nativo para TypeScript además de JavaScript. Para verificar los tipos y generar JavaScript, se utiliza el compilador TypeScript estándar, lo que conduce a una reducción del rendimiento en comparación con el análisis de JavaScript en V8. En el futuro, está previsto preparar nuestra propia implementación del sistema de verificación de tipos TypeScript, lo que nos permitirá aumentar significativamente el rendimiento del procesamiento de TypeScript.

El runtime viene en forma de un solo ejecutable autónomo (“deno”). Para ejecutar aplicaciones usando Deno, es suficiente descargar un archivo ejecutable para su plataforma, de aproximadamente 20 MB de tamaño, sin dependencias externas y que no requiera ninguna instalación especial en el sistema. Al mismo tiempo, deno no es una aplicación monolítica, sino una colección de paquetes de cajas en Rust (deno_core, rusty_v8) que se pueden usar por separado.

Además del runtime, la plataforma Deno también actúa como administrador de paquetes y permite acceder a los módulos por URL dentro del código. Los archivos descargados de servidores externos por URL se almacenan en caché. El enlace a las versiones del módulo se determina mediante las instrucciones números de versión dentro de la URL.

De las demás innovaciones que se destacan esta version 1.0:

  • Procesamiento efectivo de solicitudes de red HTTP en aplicaciones, la plataforma está diseñada para crear aplicaciones de red de alto rendimiento.
  • La capacidad de crear aplicaciones web universales que pueden ejecutarse tanto en Deno como en un navegador web normal.
  • La presencia de un conjunto estándar de módulos, cuyo uso no requiere vinculación a dependencias externas. Los módulos de la colección estándar también se han auditado y probado para verificar su compatibilidad.
  • La estructura es un sistema integrado de inspección de dependencias (comando “deno info”) y una utilidad para formatear el código (deno fmt)
  • Todos los scripts de la aplicación se pueden combinar en un archivo JavaScript.

Fuente: https://deno.land

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.