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コマンドの追加はその一環である可能性もありそうです。...

May 3, 2026

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)...

April 26, 2026

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コマンドでプロジェクトが作成できます。...

April 26, 2026

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は廃止されたようで、その影響を受けての対応のようです。...

April 19, 2026

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)

April 12, 2026

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)...

April 5, 2026

2026/03/23〜2025/03/29の最新情報

Deno v2.7.8 & Deno v2.7.9 Deno v2.7.8とDeno v2.7.9がリリースされています。 OpenTelemetry OTEL_EXPORTER_OTLP_PROTOCOL=console OTEL_EXPORTER_OTLP_PROTOCOL=consoleがサポートされています (#32717)。これが指定されると、シグナルがOpenTelemetryバックエンドではなく標準エラー出力に書き込まれます。 使用例として、DENO_AUDIT_PERMISSIONS=otelと併用することで、アプリケーションが要求したパーミッションをログに出力することができます: $ cat main.js console.info(Deno.env.get("FOO")); $ OTEL_DENO=true \ DENO_AUDIT_PERMISSIONS=otel \ OTEL_EXPORTER_OTLP_PROTOCOL=console \ deno run -E=FOO main.js LOG [INFO] 2026-03-29T07:33:36.045Z "env: FOO" scope: deno@2.7.9 deno.permission.type: "env" deno.permission.value: "FOO" deno.permission.stack: "" LOG [INFO] 2026-03-29T07:33:36.046Z "foo " scope: deno@2.7.9 log.iostream: "stdout" http.route Deno.serve()のハンドラー内からtrace.getActiveSpan()で取得したSpanにおいてhttp.route属性の設定がサポートされています (#32720) deno install -g jsrパッケージのインストールが改善 deno install -gでjsrパッケージをインストールする際に、そのパッケージが提供するdeno....

March 29, 2026

2026/03/16〜2025/03/22の最新情報

Deno v2.7.6 & Deno v2.7.7 Deno v2.7.6とDeno v2.7.7がリリースされています。 --cpu-prof --cpu-prof-flamegraphオプションが追加されています (#32572, #32716) フレームグラフをSVG形式で出力してくれます: $ deno run --cpu-prof-flamegraph --cpu-prof-name=cli.cpuprofile --cpu-prof-dir=cpu-profile -R src/cli.ts $ open cpu-profile/cli.svg --cpu-prof-flamegraphオプションの公式ドキュメントも追加されています (denoland/docs#2975) また、--cpu-profオプション関連の出力に対してソースマップが適用されるよう改善されています (#32634) deno eval --extオプションを指定しなくても、与えられたソースコードがCJSかESMかを自動的に判定してくれるように改善されています (#32472) シグナル --watchオプション使用時にファイルの変更もしくはCtrl+Cの入力が検出された際に、SIGTERMシグナル向けのリスナーが呼ばれるように挙動が改善されています (#32564) また、Windowsで下記改善が実施されています (#32689) Deno.addSignalListener()でSIGQUITとSIGTERMがサポート Deno.kill()でSIGQUIT/SIGKILL/SIGTERM/SIGABRTがサポート OpenTelemetry console.log()やconsole.error()などの第1引数にErrorオブジェクトが渡された場合、Semantic Conventionsに従って Log レコードに下記の属性が追加されるように改善されています (#32726) exception.type exception.message exception.stacktrace また、Log レコードにlog.iostream属性を設定する改善も実施されています (#32723)。console.error()またはconsole.warn()によるログの出力の場合はstderr, それ以外の場合はstdoutが設定されます。 また、Attributes への配列の指定がサポートされています (#32748) Node.js互換性の改善 deno install 書き込み権限が付与されていない実行可能ファイル (bin) を配布するnpmパッケージのインストールに失敗してしまう問題が修正されています (#32632) node:util 下記APIが実装されています (#32793):...

March 22, 2026

2026/03/09〜2025/03/15の最新情報

Deno v2.7.5 Deno v2.7.5がリリースされています。 --cpu-prof --cpu-prof, --cpu-prof-dir, --cpu-prof-name, --cpu-prof-interval, 及び--cpu-prof-mdオプションが追加されています (#31909) あわせて公式ドキュメントの追加も実施されています (docs: add CPU profiling section to debugging page (#2962)) --cpu-profオプションを指定すると、CPUプロファイラーが有効化され、プロセス終了時にデフォルトでカレントディレクトリにCPUプロファイルが保存されます (デフォルトで CPU.<timestamp>.<pid>.cpuprofile という名前で保存されます。--cpu-prof-dirオプションで出力先ディレクトリ、--cpu-prof-nameオプションでファイル名をカスタマイズ可能です) $ deno run --cpu-prof --cpu-prof-name=cli.cpuprofile -R src/cli.ts $ file cli.cpuprofile cli.cpuprofile: JSON data また、--cpu-prof-md オプションを指定すると、プロファイル結果をMarkdown形式で出力してくれます。 $ deno run --cpu-prof-md --cpu-prof-name=cli.cpuprofile -R src/cli.ts $ cat cli.md # CPU Profile | Duration | Samples | Interval | Functions | | --- | --- | --- | --- | | 414....

March 15, 2026

2026/03/02〜2025/03/08の最新情報

Deno v2.7.2/v2.7.3/v2.7.4 以下のバージョンのリリースが実施されています。 Deno v2.7.2 Deno v2.7.3 Deno v2.7.4 deno install パフォーマンス改善 並列性の改善によりdeno installによるnpmパッケージのインストール速度が改善されています (#32416) パッケージによっては4倍以上の改善がなされるケースもあるようです。 https://x.com/rough__sea/status/2029531069435830602によると、この改善により各種パッケージマネージャー内において Bun に次ぐ速度が達成されているようです。 peerDependencies peerDependenciesの解決が改善されており、あるパッケージが複数のパッケージからpeerDependenciesとして依存されている場合、意図せずそのパッケージの複数のバージョンがインストールされてしまうことがある問題への改善が実施されています (#32358) deno compile --self-extracting extraction directory の名前が変更されています (#32329) 変更前: <実行可能ファイル>.fs/<ハッシュ> 変更後: .<実行可能ファイル>/<ハッシュ> (.fsが削除され、隠しファイルとして扱われるよう.がプレフィックスとして付与されています) deno jupyter 以下の改善が実施されています (#32359) Denoカーネルでinterrupt_requestメッセージがサポートされています shutdown_requestに対して、Denoカーネルがshutdown_replyを返却するように改善されています node:crypto 下記 API が実装されています: X509Certificate の下記API (#32270) checkIP() checkIssued() checkPrivateKey() infoAccess raw subjectAltName toLegacyObject() toString() verify() KeyObject#equals() (#32409) また、下記改善も実施されています:...

March 8, 2026