Deno Desktop で TypeScript ウェブアプリをデスクトップ化
原題: Deno Desktop
なぜ重要か
Deno Desktop は Web 開発者がデスクトップアプリ開発に参入する敷居を低くし、Web フレームワークのエコシステムをデスクトップ領域に拡大する可能性を持つ。JavaScript/TypeScript の一元的な活用環境を提供する。
Deno は新機能「Deno Desktop」を発表した。TypeScript ファイルから Next.js アプリまで、あらゆる Deno プロジェクトを自己完結型のデスクトップアプリケーションに変換できる。Deno v2.9.0(カナリア版)で提供される。バイナリには Deno ランタイムとウェブレンダリングエンジンがバンドルされ、プラットフォームごとに配布可能な単一ファイルとして出力される。
Deno Desktop は Web 技術を使用してデスクトップアプリケーションを開発するための新機能である。Electron や Tauri、Electrobun といった既存のソリューションに対する Deno の独自のアプローチとして位置付けられている。
主な特徴として、まずデフォルトでは小さなバイナリサイズを実現する。オペレーティングシステム標準の WebView バックエンドを使用し、バイナリサイズを最小化しながら npm エコシステム全体へのアクセスを提供する。同時に、macOS、Windows、Linux 間で同一のレンダリングが必要な場合は、バンドルされた Chromium(CEF)バックエンドにオプトインできる。
フレームワーク自動検出機能も搭載される。Next.js、Astro、Fresh、Remix、Nuxt、SvelteKit、SolidStart、TanStack Start、Vite SSR プロジェクトに対して Deno Desktop をポイントすると、そのままで動作する。リリースモードでは本番サーバーが実行され、--hmr フラグでの開発時はホットリロード対応の開発サーバーが起動する。既存のウェブプロジェクトをデスクトップアプリケーションに変換する際に、コード変更は必要ない。
バックエンドと UI 間の通信は IPC(プロセス間通信)ではなく、プロセス内チャネルを通じて行われる。これにより効率が向上する。
ただし、Deno Desktop はまだ安定版ではなく、Deno v2.9.0 のカナリア版で提供されている。「deno upgrade canary」コマンドでカナリア版をインストールして試用できる。正式版リリース前に、コマンド、設定キー、TypeScript API は変更される可能性がある。