Deno 1.35, la última versión del tiempo de ejecución de JavaScript/TypeScript/WebAssembly posicionado como una alternativa a Node.js, estabiliza Deno.serve(), una nueva API que facilita la creación de servidores web.
La API Deno.serve() proporciona una forma “rápida y conveniente” de crear servidores web, según los desarrolladores del proyecto, quienes anunciaron Deno 1.35 el 5 de julio, calificándolo como un lanzamiento menor. Deno.serve() se describe como una nueva API de servidor web largamente esperada que ofrece facilidad de uso y mejora significativamente el rendimiento. Los desarrolladores pueden usar la API para configurar un servidor web a través de una sola línea de código:
Deno.serve((req) => new Response(“hello world”));
Comparación con otras APIs
Una API anterior, Deno.serveHTTP(), requería la configuración de un iterador asíncrono sobre conexiones y el manejo posterior de eventos HTTP. Deno.serve() utiliza objetos de solicitud (request) y respuesta (response) estándar web para una interacción fluida con fetch(), flujos web y otras API estándar.
En los puntos de referencia internos, Deno.serve() entregó el doble de rendimiento que un servidor Node.js similar, con una mejor latencia de cola y un uso de memoria más eficiente.
Deno se ejecuta en Linux, Windows y macOS como un único ejecutable binario. Las instrucciones de instalación se pueden encontrar en el sitio web de Deno. Esta última actualización sigue al lanzamiento de finales de mayo de Deno 1.34, que mejoró la compatibilidad con NPM y Node.js.
Otras características nuevas y mejoradas
- Los cambios de la API web incluyen compatibilidad con las API Headers.getSetCookie() y ReadableStream.from(), mientras que URLSearchParams.delete() y URLSearchParams() ahora admiten el parámetro de valor.
- El módulo semver de la biblioteca estándar se ha reescrito para reducir la complejidad interna y limpiar las interfaces públicas. Además, cada instancia de semver se convierte en un objeto de JavaScript simple e inmutable.
- Se ha agregado un nuevo módulo estándar, html. El módulo tiene API de escape y unescape, que escapan y deshacen los caracteres HTML especiales en las cadenas dadas. Además, se ha agregado un http/user_agent que detecta los tipos de sistema operativo, CPU, dispositivo y navegador del agente de usuario dado.
- Se han realizado mejoras en la calidad de vida del servidor de idiomas. Estos incluyen solucionar un problema antiguo con las importaciones automáticas para paquetes NPM y mapas de importación.
- Se mejoró aún más la compatibilidad con NPM y Node.js, y se realizaron cambios en el módulo de Node.js.
- Se agregaron API al espacio de nombres de Denocode, como Deno.atomicOperation y Deno.errors.Filesytemloop.
- Deno 1.35 viene con el motor Google V8 6 JavaScript/WebAssembly y TypeScript 5.1.6.