Deno 2.9 lancia app desktop da progetti TS

Deno desktop trasforma progetti Deno in binari self-contained con WebView nativo, bundle ridotti e piena compatibilità Node.js.

Deno 2.9 lancia app desktop da progetti TS

La nuova funzionalità in arrivo

Deno 2.9 aggiunge il comando deno desktop che trasforma un progetto Deno, da un singolo file TypeScript a un'applicazione Next.js, in un binario desktop autonomo. Il pacchetto include il codice sorgente, il runtime Deno e un motore di rendering web. La funzionalità è disponibile nella build canary e non è ancora stabile. Secondo Hacker News, il risultato è un eseguibile redistribuibile per macOS, Windows e Linux.

Come funziona il comando

A conceptual 3D illustration showing a glowing code file transforming into a sleek, floating desktop application window, surrounded by abstract tech elements and a dark modern background. No text or logos.

Per creare l'applicazione basta puntare il comando al file principale. Un esempio minimo è un server HTTP con Deno.serve che restituisce HTML. Il binario avvia automaticamente un webview collegato a quel server locale, senza necessità di specificare porta o host.

Il sistema rileva automaticamente i framework più diffusi: Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart e progetti basati su Vite SSR. In modalità sviluppo con il flag --hmr viene eseguito il server di sviluppo con ricarica automatica. In release viene usato il server di produzione. Non servono modifiche al codice esistente.

Backend e comunicazione

Per impostazione predefinita viene usato il webview nativo del sistema operativo. Questo mantiene le dimensioni ridotte. In alternativa si può attivare il backend Chromium Embedded Framework per avere rendering identico su tutte le piattaforme.

La comunicazione tra codice Deno e interfaccia web avviene tramite canali in-process invece che tramite IPC basato su socket. I valori vengono comunque serializzati al passaggio del confine, ma si evita il round-trip tra processi separati. La compatibilità Node è completa grazie allo strato presente in Deno, quindi le dipendenze npm restano utilizzabili.

Compilazione e aggiornamenti

A minimalist, modern 3D rendering showing three abstract devices, such as a laptop and desktop monitors, connected by glowing data streams to represent cross-platform deployment and seamless updates. Dark mode aesthetic, no text or logos.

Lo stesso computer può generare binari per le tre piattaforme principali. I backend vengono scaricati al bisogno senza compilazione locale. Per gli aggiornamenti è prevista la distribuzione di un file latest.json e patch generate con bsdiff. Il runtime controlla periodicamente la presenza di nuove versioni, applica la patch e torna alla versione precedente in caso di avvio fallito.

La configurazione avviene attraverso un blocco desktop nel file deno.json. I parametri permettono di scegliere il backend, attivare il hot reload e definire il punto di ingresso.

Pro e contro attuali

Il punto di forza principale è l'integrazione diretta con l'ecosistema Deno e la possibilità di riutilizzare progetti web esistenti senza refactoring. Le dimensioni ridotte rispetto a Electron derivano dall'uso del webview di sistema.

Lo svantaggio è che la funzionalità è ancora in fase canary: comandi, chiavi di configurazione e API TypeScript possono cambiare prima del rilascio stabile. Non è chiaro quanto sia maturo il supporto per applicazioni complesse con molti binding nativi.

FAQ

Deno Desktop richiede modifiche al codice di un progetto Next.js esistente? No. Il comando rileva automaticamente il framework e avvia il server appropriato senza interventi sul sorgente.

Qual è la differenza principale rispetto a Tauri? Deno Desktop usa canali in-process per la comunicazione tra backend e UI, mentre Tauri si basa su IPC. Inoltre il rilevamento automatico dei framework riduce la configurazione iniziale.

È possibile compilare per Windows da un Mac? Sì. La compilazione incrociata è supportata e i backend necessari vengono scaricati automaticamente.

---

📖 Leggi anche

Hai bisogno di una consulenza?

Aiuto aziende e startup a sviluppare software, automatizzare processi e integrare AI. Parliamone.

Scrivimi
← Torna al blog