Deno v2.8 Deno v2.8.0がリリースされました。 以下のページに変更内容をまとめているため、よろしければ参照ください: Deno v2.8 Claw Patrol Deno公式からClaw PatrolというAIエージェント向けのファイアウォールがOSSとして公開されています: https://deno.com/blog/clawpatrol https://github.com/denoland/clawpatrol Denoと直接的に関係があるわけではなさそうですが、Denoの開発や運用において活用されているようです。
Deno v2.8
はじめに Deno v2.8がリリースされました。 この記事では主な変更点などについて紹介します。 グローバルAPIに関する破壊的変更 タイマーAPI globalThis.setTimeout()やglobalThis.setInterval()などのタイマーAPIにおいて、Web標準ではなくNode.jsベースの実装が使用されるように変更されています (#33249) これにより、これらのAPIからはnumber型ではなくnode:timersモジュールのTimeoutやImmediateなどのオブジェクトが返却されます。 また、この変更に伴い、TypeScriptで自動的にlib: ["node"]が設定されるように変更されています (#33823) URLSearchParams globalThis.URLSearchParamsがNode.js互換となるように修正されています (#34119) 軽微ですが、コンストラクター引数としてnullやundefinedを渡した際の振る舞いが若干異なるようです。 deno add/deno install npm:プレフィックスの指定の省略がサポート deno addの引数に指定したパッケージでnpm:及びjsr:が省略された場合、デフォルトでnpm:が指定されたものとみなすよう挙動が変更されています (#33246, #34290) # 下記は`deno add npm:zod`と同様に振る舞います $ deno add zod --prod/--skip-types deno installコマンドに--prod/--skip-typesオプションが追加されています (#33248) --prodオプションを指定すると、package.jsonのdevDependenciesに指定されたパッケージのインストールがスキップされます。 --skip-typesオプションは--prodとの併用が想定されており、指定されるとpackage.json及びdeno.jsonで指定された@types/*パッケージのインストールがスキップされます。 --package-json deno add/deno install/deno remove/deno uninstallコマンドに--package-jsonオプションが追加されています (#33199) package.jsonとdeno.jsonが併用されたプロジェクトにおいてこれらのコマンドを実行するとデフォルトではdeno.jsonが更新されます。--package-jsonオプションを指定することで、更新対象のファイルをdeno.jsonからpackage.jsonに変更できます。 --os/--arch --os及び--archオプションが追加されています (#32785) Denoはデフォルトで現在のプラットフォームに基づいてnpmパッケージのoptionalDependenciesにおける適切なプラットフォーム向けの依存関係のみをダウンロードしますが、--os及び--archを使用することでこの挙動を変更し、指定されたOS/アーキテクチャー向けの依存関係のダウンロードを行わせることが可能です。 --archと既存のDENO_INSTALL_ARCH環境変数を併用した場合、--archが優先されます。 deno test OpsサニタイザーとResourcesサニタイザーがデフォルトで無効化 OpsサニタイザーとResourcesサニタイザーをデフォルトで無効化する変更が実施されています (#33250) これらを有効化するために、下記いずれかの手段が提供されています。 1. Deno.test Deno.test()の下記オプションをtrueに設定することで、該当テストケースでサニタイザーを有効化できます: sanitizeOps sanitizeResources また、テストファイル内でDeno.test.sanitizer()を実行することで、該当のテストファイル内のすべてのテストケースでサニタイザーを有効化できます。 Deno.test.sanitizer({ ops: true, resources: true, }); Deno....
2026/05/11〜2025/05/17の最新情報
Denoの直近の変更について 先週に続いていくつかの新機能がmainブランチにマージされているため、紹介いたします。 node:wasi node:wasiを実装するPRがマージされています: feat(ext/node): implement node:wasi #34089 Denoのパーミッションシステムと統合されており、preopensに指定された各種パスに対して権限が付与されているかを確認してくれるようです。 poll_oneoffやsock_*など、一部関数はまだ実装されていないようです。 Web Crypto APIにおけるSHA3のサポート SubtleCrypto#digest()で下記アルゴリズムがサポートされています (#32342): SHA3-256 SHA3-384 SHA3-512 WICG/webcrypto-modern-algosにて提案されている機能のようです。
2026/05/04〜2025/05/10の最新情報
Denoの直近の変更について 先週に続いていくつかの新機能がmainブランチにマージされているため、紹介いたします。 --node-modules-linker=hoisted --node-modules-linkerオプションが追加されています (#32788)。 これはpnpmにおけるnodeLinkerオプションに相当するオプションのようで、現状ではhoistedまたはisolatedのいずれかの値の指定がサポートされています。デフォルト値はisolatedで、isolatedが指定されている際は、今まで通り、pnpmなどと同様のレイアウトでnode_modulesが作成されます。 それに対して hoisted (--node-modules-linker=hoisted) を指定すると、DenoがnpmやYarn v1と同様のレイアウトでnode_modulesを作成してくれます (--node-modules-dir=manualとの併用が必要です) また、本オプションはdeno.jsonにおけるnodeModulesLinkerによって設定することも可能です。 このオプションの追加によりnpmを採用したプロジェクトとの互換性が改善されそうです。 Deno.test()にtimeoutオプションが追加 Deno.test()にtimeoutオプションが追加されています (#33815) ミリ秒単位でテストケースごとにタイムアウトを設定できます。 Deno.test({ name: "doSomethingAsync", timeout: 5_000, fn: async () => { const result = await doSomethingAsync(); assert(result === 123); }, });
2026/04/27〜2025/05/03の最新情報
直近のDenoの変更について 直近でDenoのmainブランチにいくつかの機能がマージされているため紹介します。 ⚠️ これらの機能はまだ正式にはリリースされていないため、今後、使用方法などが変更される可能性があります deno compile - フレームワークの検出機能 deno compileコマンドにフレームワークの検出機能が追加されています: feat: framework detection for deno compile #33164 deno compileの引数としてディレクトリが指定された場合、指定されたディレクトリ内に存在する設定ファイル (例: next.config.js)などに基づいてDenoが自動的にプロジェクトで使用されているフレームワークを検出し、必要に応じて該当フレームワーク向けのビルドコマンドを実行した上で、最終的に実行可能ファイルを作成してくれます。 現状、以下のフレームワークがサポートされているようです: Next.js Fresh Astro Nuxt SvelteKit Remix SolidStart TanStack Start Vite (SSR) 先週に紹介したdeno desktopコマンドにおいてフレームワークの検出機能の導入が検討されており、その一環の対応であると思われます。 catalog:プロトコル カタログ機能を実装するPRがマージされています: feat(npm): add catalog: protocol for centralized dependency versions in workspaces #32947 ワークスペースのルートにおけるdeno.jsonまたはpackage.jsonにおいてcatalogもしくはcatalogsプロパティーを定義しておくことで、pnpmなどと同様にワークスペースメンバーの各package.jsonにおいてカタログで定義されたパッケージのバージョンをcatalog:形式で参照することができます。 deno transpile 昨年に提案されていたdeno transpileコマンドが実装されています: feat: add deno transpile subcommand #32691 TypeScriptファイルをJavaScriptファイルにトランスパイルするためのコマンドで、--declarationオプションを指定することで.d.tsファイルの生成も行えるようです。 現在はクローズされていますが、以前にDenoからnpmパッケージの公開を行えるようにするためのdeno publish –npmの実装が進められており、deno transpileコマンドの追加はその一環である可能性もありそうです。...
2026/04/20〜2025/04/26の最新情報
Fresh v2.3 Fresh v2.3がリリースされています。詳細については下記ページを参照いただければと思います。 Fresh v2.3 deno desktopコマンドについて まだ正式に導入されるかどうかはわかりませんが、deno desktopというコマンドを実装するPRが作成されています: feat: deno desktop subcommand #33441 名前の通りデスクトップアプリケーションを作成することを想定したコマンドのようです。複数のバックエンドのサポート (webview, Chromium など) やフレームワーク (Next.js, Fresh など) の自動検出, アプリケーションの自動アップデートなど、様々な機能が検討されているようです。 Deno v2.7.13 Deno v2.7.13がリリースされています。 deno upgrade 先週に紹介したdeno upgrade pr <number>が導入されています (#33252) deno audit 先週に紹介したBulk Advisory Endpointへの移行が導入されています (#33292) deno doc --html jsx/tsxコードブロック向けのハイライトがサポートされています (#33255) Node.js互換性の改善 node:repl node:replが実装されています (#32799) Node.jsのテストスイートのうち1/3近くがパスしている状態のようです。 node:http Deno v2.7.12で内部的に導入されていたllhttpベースのHTTPParserが正式に採用開始されています (#33208) また、globalAgentの上書きがサポートされています (#33337) node:http2 createServer()などにおけるstrictSingleValueFields: falseの指定がサポートされています (#33332) node:tls connect()のsocketオプションにおける任意のストリームの指定やconnect()/Server#listen()におけるUnixドメインソケットのサポートが実施されています (#33331) Node-API node_api_post_finalizer()が実装されています (#33260)...
Fresh v2.3
はじめに Fresh v2.3がリリースされました。 この記事では主な変更点などについて解説します。 View Transition API View Transition APIのサポートが行われています (#3708) Partialの仕組みと統合されており、f-client-navによってクライアントナビゲーションが有効化されている要素に対してf-view-transitionを指定することで、Partialによる画面遷移に対してdocument.startViewTransition()が自動で適用されます。 もしブラウザーがView Transition APIをサポートしていない場合は、今まで通り通常のPartialによる画面遷移にフォールバックされます。 不要なJavaScript依存の排除 (Zero JavaScript by Default) アプリケーションがIsland及びPartialのどちらにも依存していない場合、本番ビルドがJavaScriptコードへ依存しないように改善されています (#3696) これによりFresh v1の頃と同様に、必要でなければJavaScriptコードがブラウザーに送信されなくなります。 WebSocketサポート FreshにWebSocketの公式サポートが追加されています (#3774) App#ws()メソッドが追加されており、WebSocket用のエンドポイントを定義することができます。またContext#upgrade()メソッドも追加されており、より柔軟にWebSocket向けのエンドポイントを実装することも可能です。 Islandに対するTemporalのサポート Islandコンポーネントのpropsに対するTemporal関連のオブジェクトの指定がサポートされています (#3701) なおTemporal APIについてはDeno v2.7にて安定化されています。 ipFilter()ミドルウェア @fresh/coreパッケージにipFilter()が追加されています (#3035) @std/net/unstable-ipのmatchSubnets()をベースに実装されており、指定されたCIDR表記に基づいてアクセス制限を掛けることができます。 csp() - リクエストごとのnonceの生成がサポート csp()ミドルウェアにuseNonceオプションが追加されています (#3709) このオプションにtrueが設定された場合、FreshはSSRごとに一意なnonceを生成し、各種インライン<script>や<style>に設定した上で、Content-Security-Policyヘッダーの各種ディレクティブに対してunsafe-inlineではなくnonce-<nonce>を設定してくれます。 trustProxyオプション AppにtrustProxyオプションが追加されています (#3757) このオプションにtrue が指定されると、ContextオブジェクトのurlプロパティーがX-Forwarded-Proto及びX-Forwarded-Hostヘッダーを考慮して設定されます。 複数静的ディレクトリのサポート staticDirオプションで配列の指定がサポートされています (#3759) Viteプラグイン (@fresh/plugin-vite) においてstaticDirオプションで配列が指定された場合、最初の要素 (ディレクトリ) がViteのpublicDirオプションに指定され、それ以外はFreshの開発サーバーから配信されるようです。 フォームに対する_freshIndicatorのサポート Partialが適用されたformまたはbutton[type=submit]要素に対して、ref経由で_freshIndicator属性にSignalを設定しておくことで、該当のフォームがsubmitされる際に_freshIndicatorに設定されたSignalが自動的にtrueに更新されます (#3753)。これにより該当のSignalの値を元にローディングのアニメーションを表示することなどが可能です。 @fresh/init - deno createのサポート @fresh/initパッケージでdeno createコマンドによるプロジェクトの作成がサポートされています (#3706, #3746) これによりdeno create jsr@fresh/initコマンドでプロジェクトが作成できます。...
2026/04/13〜2025/04/19の最新情報
denoland/deno3-test1 DenoのGitHub Organizationで以下の2つのリポジトリが公開されています。 denoland/deno3-test1 denoland/deno3-test2 Deno v3に関連したものと思われ、まだ正式に機能が取り込まれるかどうかはわかりませんが、これらのリポジトリから読み取れる限りでは、Deno.tomlというファイルでパッケージのメタ情報の定義や依存関係の管理を行うアイデアが試されているようです。 Denoの直近の更新について 先週、Denoの main ブランチにマージされている変更の中から主要なものについて紹介いたします。 deno upgrade pr <number> deno upgradeコマンドで特定のPR向けにビルドされたバージョンへのアップグレードがサポートされています。 feat(upgrade): support installing from a PR #33252 現時点ではgh run downloadコマンドをベースに実装されているため、本機能の利用にはGitHub CLI (gh) がインストールされている必要あります。 $ deno upgrade --output ./deno-pr-33298 pr 33298 $ ./deno-pr-33298 --version deno 2.7.12+4c90c4d (canary, release, x86_64-unknown-linux-gnu) v8 14.7.173.19-rusty typescript 5.9.2 deno audit - Bulk Advisory Endpointへの移行 deno auditコマンドの内部実装においてBulk Advisory Endpoint (/-/npm/v1/security/advisories/bulk) へ移行する対応が行われています。 fix(audit): migrate to bulk advisory endpoint #33292 元々、Full Audit エンドポイント (/-/npm/v1/security/audits) というAPIが使われていましたが、直近のタイミングでこのBulk Advisory Endpointは廃止されたようで、その影響を受けての対応のようです。...
2026/04/06〜2025/04/12の最新情報
Deno v2.7.12 Deno v2.7.12がリリースされています。 OpenTelemetry OTEL_EXPORTER_OTLP_TIMEOUT環境変数が追加されています (#33159) バックエンド向けに Signal を送信する際のタイムアウトをミリ秒単位で設定できます (デフォルトは10秒) deno repl タブ補完の実装においてLSPの使用を廃止し、CDP (Runtime.getPropertiesなど) のみを使用するように変更されています (#33119) これにより起動速度などの改善が期待されそうです。 パーミッション --deny-netにおいてIPv4-mapped IPv6 addressなどが意図せず許可されてしまうことがある問題が修正されています (#33203, #33223) Node.js互換性の改善 node:http 内部クラスであるHTTPParserがllhttpを使用して再実装されています (#33202) 内部的な変更ではあり、まだ実際に使用されているわけではなさそうですが、今後、HTTP関連の互換性がさらに改善されそうです。 node:net connect()のfdオプションのサポートが追加されています (#33150, #33155, #33136) また、ServerやSocketのref()メソッドが動作するように改善されています (#33174) node:child_process spawnSync()でtimeout及びkillSignalオプションがサポートされています (#32810) spawn()のstdioオプションにおいてファイルディスクリプターの指定がサポートされています (#33140) また、ChildProcess.stdio[fd]などに設定されるオブジェクトがRustで再実装されています (#33165) node:dns getDefaultResultOrder()が追加されています (#33197) node:fs open()やopenSync()がridではなくファイルディスクリプターを返却するように改善されています(#33039) その他のfdを引数として受け取る各種APIも rid ではなく実際のファイルディスクリプターを考慮するように改善されています。 links deno.jsonのlinksに指定されたnpmパッケージがpeerDependenciesを定義しており かつ deno.lockが存在している場合にエラーが発生してしまう問題が修正されています (#33143) WebAPI GPUQueue#writeBuffer() GPUQueue#writeBuffer()のdata引数におけるArrayBufferの指定がサポートされています (#33152) Worker Workerにおけるメモリリークが修正されています (#33200)
2026/03/30〜2025/04/05の最新情報
Deno v2.7.10 & Deno v2.7.11 Deno v2.7.10とDeno v2.7.11がリリースされています。 deno upgrade deno upgradeコマンドでalphaとbetaチャネルがサポートされています (#33098) RCバージョンへのアップグレードと同様に、deno upgradeの引数にalphaもしくはbetaを指定することでアップグレードが可能です。 ただし、まだ alpha 及び beta バージョンのリリースは実施されていません。今後、実際にリリースが行われれば、利用できるようになりそうです。 deno compile deno.jsonにおいてcompile.include及びcompile.excludeフィールドがサポートされています (#33024) 効果はそれぞれ--include及び--excludeオプションと同様です。 deno lsp Import mapsにおいて以下のようにディレクトリへのマッピングが定義されている状態でdeno lspがimportの補完をする際に、相対パス形式だけでなく@/形式のパスに対する補完候補も表示してくれるように改善されています (#33048) { "imports": { "@/": "./src/" } } Permissoins Windowsにおいて、--allow-readなどのパーミッションオプションにおけるパスの大文字・小文字を区別せずに取り扱うように挙動が変更されています (#33073) Node.js互換性の改善 links deno.jsonのlinksフィールドにおいてまだnpmレジストリに公開されていないnpmパッケージが参照されている場合にエラーが発生してしまう問題が修正されています (#33021) BYONM --node-modules-dir=manual (BYONM) が適用されている場合、Node.js組み込みモジュールと同名のパッケージ (例: eventsパッケージ) が読み込めない問題が修正されています (#32865) node:child_process spawnSync()の戻り値として返却されるオブジェクトにpidプロパティーが設定されるように改善されています (#33081) node:crypto 下記の改善が実施されています: createCipher()/createDecipher()でchacha20-poly1305がサポート (#33084) Verify#verify()への秘密鍵の指定がサポート (#33083) node:worker_threads exitイベントがmessageイベントよりも先に発火されてしまうことがある問題が修正されています (#32623)...