Deno 2.9 llega con 'deno desktop', una nueva vía para crear aplicaciones nativas desde la web

Fuentes: Deno 2.9 ships deno desktop for native apps from the web stackT3

Deno 2.9 introduce 'deno desktop', una funcionalidad experimental para empaquetar aplicaciones de escritorio nativas a partir de un script o de un proyecto web. Apunta a un archivo y la herramienta genera un binario autónomo con la interfaz en un webview y la lógica ejecutada por Deno, sin necesidad de Electron ni de cadenas de herramientas adicionales. Comparte la detección de frameworks de 'deno compile' y es compatible con Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start y Vite SSR, con un modo --hmr para desarrollo. La API nativa se expone bajo el espacio Deno.*: Deno.BrowserWindow controla ventanas y permite enlazar funciones con el webview, Deno.Tray añade iconos en la bandeja del sistema, Deno.Dock integra el dock de macOS y Deno.autoUpdate aplica parches en segundo plano. Los diálogos prompt, alert y confirm se renderizan de forma nativa. Para renderizar existen dos motores seleccionables con --backend: el webview del sistema operativo (WebView2 en Windows, WebKit en macOS y Linux) por defecto, o CEF con Chromium embebido para un comportamiento idéntico en todas las plataformas. La salida admite formatos .app/.dmg, .exe/.msi y .AppImage/.deb/.rpm, con compilación cruzada mediante --target y --all-targets desde un único equipo.

La versión también facilita migrar proyectos Node: 'deno install' interpreta directamente lockfiles de npm, pnpm, yarn y Bun, de modo que cambiar de gestor de paquetes requiere solo un par de comandos. El rendimiento mejora de forma notable: el arranque en frío de un programa 'hello world' baja de 34,2 ms a 17,3 ms gracias a la carga diferida de globales de Node, una caché de código V8 y un snapshot reducido. El uso de memoria se mantiene estable en torno a 62 MB frente a picos de hasta 197 MB en la versión 2.8 con cuerpos de 1 MiB. El rendimiento HTTP de Deno.serve crece entre un 11 % y un 27 % según la carga de trabajo, apoyado en una nueva ruta HTTP/1.1 escrita en Rust. Entre las novedades adicionales se incluyen imports de módulos CSS, un test runner reforzado, inicio más rápido y compatibilidad con Node.js 26.