Deno デスクトップ

2026/06/22 14:38

Deno デスクトップ

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Deno Desktop v2.9.0 では、TypeScript プロジェクト(Next.js、Astro、Nuxt、Fresh、Remix、SvelteKit、SolidStart、TanStack Start、および Vite SSR を含む)をセルフコンテインドで再配布可能なデスクトップバイナリに変換するキャナリービルドが追加されました。この機能は

deno upgrade canary
で利用可能であり、コード、ランタイム、レンダリングエンジンをプラットフォームごとにバンドルするとともに、Deno の互換レイヤーを通じて Node.js/npm エコシステムとの完全な互換性を維持します。デフォルトでは OS 固有の WebView を使用してバイナリサイズを小さく保ちますが、macOS、Windows、Linux の間で一貫した視覚的なレンダリングを実現するために、バンドルされた Chromium (CEF) バックエンドを選択することも可能です。このツールはコード変更なしでのフレームワークの自動検出、単一のマシンからのクロスコンパイル、ソケットベースの IPC 往復を排除するインプロセス通信チャネルをサポートします。

新しい機能には、

latest.json
マニフェストと
bsdiff
パッチを使用した内蔵の自動更新があり、失敗時のロールバックを伴う自動ポーリングが
Deno.autoUpdate()
を通じて実装されています。開発者は
main.ts
Deno.serve()
を使用して HTTP サーバーアドレスを自動的にバインドすることで、ワンファイルデスクトップアプリケーションを作成できます。追加の機能には、ネイティブシステムトレイ/ドックとの統合、ダイアログ(
prompt
alert
confirm
)、Web 通知 API のサポート、およびホットモジュール置換(
--hmr
)が含まれます。コマンドキーと TypeScript API は安定版リリースに達するまで変更の対象となる可能性があることに注意してください。また、この時点ですべての機能に関する具体的な API キーも最終決定されます。詳細な使用方法については、CLI リファレンスおよび
deno.json
デスクトップスキーマ構成を参照してください。

本文

Deno Desktop:Deno プロジェクト向けデスクトップアプリ変換ツール

概要

Deno Desktop は、Deno プロジェクト(単一ファイルから Next.js アプリまで)を再配布可能なバイナリへ変換するツールです。すべてのコード、Deno ランタイム、およびウェブレンダリングエンジンを各プラットフォーム向けにまとめてバンドルします。

導入方法

Deno Desktop は Deno v2.9.0 に搭載されていますが、現時点では安定版リリースには含まれていません。

  • 今すぐ試す場合
    canary
    ビルドをインストールしてください。
    deno upgrade canary
    
  • 注意:機能の安定化までの間は、コマンドや構成キー、TypeScript API が変更される可能性があります。

主な特徴と解決課題

既存のウェブスタック(Electron, Tauri など)にはバイナリサイズの大型化やプラットフォームサポート不足などの妥協点があります。Deno Desktop は以下の方針でこれらの課題を解決します:

  • 軽量かつ Node.js 互換
    • デフォルトでは OS 標準の WebView を使用し、小型なバイナリを実現。
    • Deno の Node.js 互換レイヤーにより、npm エコシステムをそのまま利用可能。
    • macOS/Windows/Linux で一貫したレンダリングが必要な場合は、バンドルされた Chromium (CEF) を選択可能。
  • フレームワークの自動検出
    • Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart などへの適用でそのまま動作。
    • コード変更なしで既存の Web プロジェクトをデスクトップアプリへ移行可能(リリースモード用)。
    • 開発サーバー時は
      --hmr
      フラグが必要です。
  • プロセス内結合による高性能通信
    • ソケットベースの IPC ではなく、プロセス内のチャンネルを通じた通信を採用。
    • Deno コードと Webview 間のクロスプロセス往復処理が不要で高速化を実現。
  • ワンマシンでのクロスコンパイル
    • 単一のマシンから macOS, Windows, Linux のすべてのプラットフォーム向けにビルド可能。
    • バックエンドライブラリはダウンロードされ、ローカル構築の必要はありません。
  • 自動アップデート機能内蔵
    • latest.json
      マニフェストと bsdiff パッチのみで配布可能。
    • ランタイムが自動的にポーリングし、適用失敗時はロールバックも自動化されます。

基本使用例:Hello, Desktop

1 つのファイル(

main.ts
)でデスクトップアプリを作成できます。

// main.ts
Deno.serve(() =>
  new Response("<h1>Hello, desktop</h1>", {
    headers: { "content-type": "text/html" },
  })
);

コンパイルされたバイナリを実行すると、

Deno.serve()
ハンドラにバインドされたローカル HTTP サーバーを表示するウィンドウが開きます。

実行コマンド

  • macOS / Linux:
    ./main
  • Windows:
    .\main.exe

ポート番号やホスト名の指定は不要です(Webview が自動的にアドレスをバインドするため)。詳細は「HTTP サービング」セクションを参照してください。

セクション目次

以下のトピックについて詳しく解説しています:

  • 構成:
    deno.json
    ファイル内のデスクトップ設定方法。
  • バックエンド: CEF, WebView, Raw の種類と選択基準。
  • HTTP サービング:
    Deno.serve()
    統合およびサービングモデル。
  • フレームワーク対応: Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit などへの対応状況。
  • Windows 特有機能:
    Deno.BrowserWindow
    ライフサイクル、複数ウィンドウ、イベント処理。
  • バインディング: Webview から
    bindings.<name>()
    を通じて Deno コードを呼び出す方法。
  • メニュー: アプリケーションメニューとコンテキストメニューの作成。
  • トレイとドック: システムステータスアイコンおよび macOS ドックの活用。
  • ダイアログ: ネイティブポップアップとして動作する
    prompt()
    ,
    alert()
    ,
    confirm()
  • 通知: Web Notification API を用いたネイティブ OS 通知の実装。
  • ホットモジュール置換 (HMR): フレワーク/非フレームワークアプリへの
    --hmr
    フラグ適用方法。
  • 開発者ツールの統合: Deno ランタイムと Webview に統一された DevTools を付加。
  • 自動アップデート機能:
    Deno.autoUpdate()
    , マニフェスト, bsdiff, ロールバック処理の仕組み。
  • エラー報告: 未捕捉例外やパニックのキャプチャ方法。
  • 配布: クロスコンパイル、出力形式、インストーラー作成の流れ。
  • 比較検討: Deno Desktop と Electron, Tauri, Electrobun, Dioxus の関係性解説。
  • Deno Desktop CLI リファレンス: コマンド、フラグオプション、
    deno.json
    デスクトップスキーマの詳細説明。

同じ日のほかのニュース

一覧に戻る →

2026/06/23 2:09

Steam マシンが本日発売開始

## Japanese Translation: このフッターセクションは、Valve Corporation からの法的通知であり、コンテンツに対する留保された権利を主張するとともに、商標が世界中でそれぞれの所有者に帰属することを示しています。これは厳格な知的財産権の境界線を定め、プライバシーポリシー、アクセシビリティ基準、Steam サブスクライバー契約、返金手続き、クッキー情報を含む重要なポリシーへのアクセスを案内します。これらの契約的および法的枠組みを確立することで、本テキストはユーザーが自身のデータ権利、返金の有無、利用条件について理解できるよう通知し、企業資産と国際的・地域的な合意に基づく消費者保護に関する明確さを確保しています。

2026/06/23 5:48

LG スマート TVs の約半分が住宅用プロキシ SDK を内蔵しています

## Japanese Translation: LG webOS および Samsung Tizen TV 向けに導入されている 6,038 アプリについて調査したところ、そのうち 2,058 を超えるアプリが SDK(ソフトウェア開発キット)を介して静かにユーザーの IP アドレスを販売し、レジデンシャルプロキシとして機能することが明らかとなりました。従来の広告ベースの収益化モデルとは異なり、これらのアプリはスクリーンセーバーや水槽などの distractions なユーティリティ内に偽装された SDK を通じて、インターネット接続を静かに収益化しています。Amazon は明確に此类サービスを禁止しているほか、Roku も接触後に同様の SDK をブロックしたと報じられていますが、LG および Samsung では同様の公的ポリシーが存在せず、このビジネスモデルが検出されずに拡大することを許容する規制上の空白を生み出しています。特定企業のうち、Bright Data(367 件のフラグ付けされたアプリに関連)および Honeygain UAB(16 件のアプリの発行元)が含まれています。単なるデータ共有を超えた深刻なセキュリティリスクが存在します。一部の SDK はプライベート IP の範囲に対する適切なブロックリストを欠いており、その結果 TV が攻撃者のローカルデバイス(ルーターやカメラなど)へのアクセス手段となる可能性があります。これは Kimwolf ボットネットの事例で実証されています。提供者は同意フロー、KYC、監査などがリスクを軽減すると主張していますが、ユーザーがこれらの統制を検証するのは困難です。このため、研究者たちは、LG および Samsung に顕著な開示とユーザークントロールを要件とする明確なポリシーの確立を促しており、これによってこの目に見えない経済活動が検出されずに続かないよう求めています。

2026/06/23 6:21

Unsloth GLM-5.2 — ローカルで実行する方法

## Japanese Translation: Z.ai の GLM-5.2 は、40B(アクティブ)のパラメータを備えた 7440 億パラメータを持つ大規模オープンソースモデルであり、コーディング、推論、エージェントタスクにおいて GPT-5.5 や Claude 4.8 Opus などの主要なクローズドモデルと同等の最先端性能を発揮します。大きな進歩の一つは、Unsloth の Dynamic quantization を用いて標準ハードウェアでローカル実行可能な点であり、例えば推奨されている 2 ビットバージョン(UD-IQ2_M)では、必要な容量が 1.51TB からわずか 239GB に削減されつつ約 82% の上位 1% の精度を維持し、高メモリワークステーションや 256GB ユニファイドメモリの Mac、GPU オフロードを利用するシステムなどで動作します。また、「Non」「High」「Max」の 3 つの思考モードを Unsloth Studio インターフェースまたはコマンドラインからアクセスでき、必要に応じて推論深度を切り替え可能です。MacOS、Windows、Linux のすべてで動作し、Unsloth Studio や llama.cpp を通じて高速な推論を実行できます。さらに、KV キャッシュの quantization による最多 3.5 倍までのコンテキスト長延伸や、クラウド API に依存せず迅速なローカル展開を可能とする柔軟なインストールスクリプトなどの追加最適化も提供されます。