2025/12/22〜2025/12/28の最新情報

Happy Eyeballsのサポートについて まだマージはされていませんが、Deno.connect()やDeno.connectTls()でHappy EyeballsをサポートするPRが作成されています。 feat(ext/net): implement Happy Eyeballs for Deno.connect and Deno.connectTls #31726 c057103時点における実装ではHappy Eyeballsはデフォルトで有効化されており、必要に応じてautoSelectFamilyオプションにfalseを指定することで無効化できるようです。指定されたホストに対して複数のアドレスが解決された場合、まずIPv6アドレスに対する接続を試み、その後、デフォルトで250ミリ秒後 (autoSelectFamilyAttemptDelayオプションでカスタマイズ可能) にIPv4アドレスの方へ並行で接続を試みるよう実装されているようです。 deno sandboxコマンドのドキュメント 先週に紹介したdeno sandboxコマンドに関する公式ドキュメントが追加されています。 Sandbox CLI (denoland/docs#2795) deno_std のリリース deno_std のリリースが行われています (release-2025.12.24, release-2025.12.25) @std/uuid@1.1.0 @std/uuid@1.1.0がリリースされています。 UUIDv7のサポートが安定化 UUIDv7のサポートが安定化されています (#6897) 今後は @std/uuid/unstable-v7 ではなく @std/uuid/v7 から利用できます。 @std/async@1.0.16 @std/async@1.0.16がリリースされています。 @std/async/unstable-semaphoreが追加 Semaphoreクラスが提供されています (#6894) @std/streams@1.0.16 @std/streams@1.0.16がリリースされています。 @std/streams/unstable-capped-delimiter-stream @std/streams/unstable-capped-delimiter-streamという新規モジュールが追加されています (#6890) CappedDelimiterStreamが提供されており、既存のDelimiterStream (@std/streams/delimiter-stream) との違いとして、デリミターで区切られた個々のフィールドのサイズが一定以上の大きさを持つようなケースでの使用が想定されています。 @std/http@1.0.23 @std/http@1.0.23がリリースされています。 @std/http/negotiation 戻り値の型に関する推論を賢くするためにaccepts(), acceptsEncodings(), 及びacceptsLanguages()に型パラメーターが追加されています (#6876) @std/ini@1.0.0-rc.9 @std/ini@1.0.0-rc.9がリリースされています。 @std/ini/parse parse()にreviver()オプションが指定された場合、reviver()の第2引数に数値や真偽値が常に文字列として渡される問題が修正されています (#6887) @std/path@1.1.4 @std/path@1....

December 28, 2025

2025/12/15〜2025/12/21の最新情報

Deno v2.6.1 Deno v2.6.1がリリースされています。 deno x - Windows向けの改善 Deno v2.6.0で実装されたdeno xコマンドについて、Windows向けの改善が実施されています。 まずWindowsにおいてdxコマンドが実行できなかった問題が修正されています (#31573) また、Winodwsでdeno xによってネイティブバイナリーを実行できるようにする改善が実施されています (#31551) deno add - jsrパッケージのダウンロードに関する挙動の修正 deno addコマンドでjsrパッケージを追加した際に、該当パッケージ内における type-only import 先のモジュールがダウンロード対象から除外されてしまう問題が修正されています (#31552) deno deploy - deploy.appの省略がサポート deno.jsonのdeployフィールドにおいて、appフィールドの設定を省略できるよう改善されています (#31567) --require/--preloadに関する修正 --require及び--preloadオプションがdeno bundleなどの非ランタイムコマンドでも利用できていた問題が修正されています (#31614) node:sqlite 様々な改善が実施されています (#31515) DatabaseSync#location()が実装 DatabaseSyncでtimeoutオプションがサポート DatabaseSyncのisOpen及びisTransactionプロパティーが実装 DatabaseSyncコンストラクタ及びbackup()のpath引数においてURL及びBufferによる指定がサポート Stream関連の型定義の改善 Deno v2.6.0におけるStreamの移譲のサポートに合わせて、MessagePort#postMessage()のtransferオプションなどで、ReadableStream/WritableStream/TransformStreamを受け入れるよう型定義が改善されています (#31586) Deno v2.6.2 Deno v2.6.2がリリースされています。 deno sandbox Deno Sandboxesと連携するためのdeno sandboxコマンドが追加されています (#31568, #31657) 内部的には@deno/deployパッケージ経由で@deno/sandboxパッケージが実行されており、deno sandbox createコマンドによるサンドボックスの作成、deno sandbox execコマンドによるサンドボックス内でのコマンドの実行などがサポートされているようです (参考: @deno/deploy@0.0.75/sandbox.ts) OpenTelemetry 下記APIが動作するよう、Baggage などに関する実装が修正されています (#31620)...

December 21, 2025

2025/12/08〜2025/12/14の最新情報

Deno v2.6 Deno v2.6.0がリリースされました。 以下のページに変更内容をまとめているため、よろしければ参照ください: Deno v2.6 Deno Sandboxes Denoの公式ドキュメントにDeno Sandboxesに関するページが追加されています。 initial commit for sandboxes pages #2754 Deno Sandboxesでは、公式SDK (jsr:@deno/sandbox) を介してDeno Deployのインフラ上で即席のLinux VMを立ち上げ、そこでコードやコマンドの実行など様々なことを行うことができるサービスのようです。 Deno Sandboxesについては、Deno Advent Calendarで本日に公開された@okutann88さんの記事でも解説されています。 @deno/sandbox による任意コード実行と強制停止

December 14, 2025

Deno v2.6

はじめに Deno v2.6がリリースされました。 この記事では主な変更点などについて紹介します。 deno x deno xコマンドが追加されています (#31138) このコマンドを使うことで、npxのように指定したパッケージをインストールし、実行することができます。 $ deno x cowsay@1.6.0 hi ____ < hi > ---- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || インストールされたパッケージは$DENO_DIR/deno_x_cacheに保存されます。$DENO_DIR/deno_x_cache/<package-dir>/deno.lockを作成することで、パッケージの依存関係を固定してくれます。 また、パーミッションフラグの指定も可能です (デフォルトでは --allow-all が指定されます) $ deno x --ignore-env --allow-read cowsay@1.6.0 hi ネイティブバイナリーを実行する場合は--allow-runが要求されます。 $ deno x --deny-run esbuild --version error: Requires run access to "/path/to/.deno/esbuild@0.27.1/node_modules/esbuild/bin/esbuild", run again with the --allow-run flag デフォルトではnpmパッケージが実行されますが、jsr:を指定することでjsrパッケージの実行も可能です。...

December 14, 2025

2025/12/01〜2025/12/07の最新情報

直近のDenoのアップデート まだリリースは行われていませんが、直近でいくつかの機能が追加されてますため紹介いたします。 ⚠️ 8c46ac3228762fb442b0080c7eb81e5e918543bb時点での canary バージョンを想定して記述していますが、正式にリリースされる際には仕様などに変更が発生する可能性があります。 deno approve-scripts 以前に紹介した deno approve-scriptsコマンドが追加されています。 feat(cli): add approve-scripts AKA “approve-builds” subcommand #31472 この機能はDeno 3.0.0-rc.0で追加されているdeno.jsonのallowScriptsフィールドをベースにしています。 このコマンドの引数にはnpmパッケージを指定可能で、その場合、指定されたパッケージがdeno.jsonのallowScriptsフィールドに追加された後、該当パッケージのライフサイクルスクリプトが実行されます。引数の指定が省略された場合は、deno outdated --update --interactive と同様のUIが表示され、ライフサイクルスクリプトの実行を許可したいパッケージを対話的に選択できます。 # (1) ライフサイクルスクリプトを持つパッケージをインストールします $ deno install npm:better-sqlite3@12.2.0 Add npm:better-sqlite3@12.2.0 ╭ Warning │ │ Ignored build scripts for packages: │ npm:better-sqlite3@12.2.0 │ │ Run "deno approve-scripts" to run build scripts. ╰─ # (2) 対話的に特定パッケージに対するライフサイクルスクリプトの実行を許可できます $ deno approve-scripts ? Select which packages to approve lifecycle scripts for (<space> to select, ↑/↓/j/k to navigate, a to select all, i to invert selection, enter to accept, <Ctrl-c> to cancel) ❯ ○ npm:better-sqlite3@12....

December 7, 2025

2025/11/24〜2025/11/30の最新情報

Deno Deployのアップデート Deno Deployのchangelogが更新されています。 2025-11-24 Deploy changelog (denoland/docs#2742) このアップデートでは--tunnelオプションについて言及されています。このオプションにより、Deno Deploy が発行した一時的なパブリックドメインからローカルアプリケーションへのアクセスが行えるようです。また、--tunnelオプションに関する公式ドキュメントも追加されています (#2736) 全てのOrganizationで請求が有効化されたようです。デフォルトではFreeプランが使用されるとのことです。 また、Googleアカウントを使用したDeno Deployへのサインインがサポートされています。 Deno DeployがOIDCトークンの発行をサポートしたようです。関連パッケージとしてjsr:@deno/oidcが公開されています。 それ以外にも、カスタムのTLS証明書のサポートやビルドに関するタイムアウトやメモリ割当のカスタマイズなど、様々な改善が実施されているようです。 @lowlighter/vercel-deno Vercel上でDenoを動作させるための@lowlighter/vercel-denoパッケージが公開されています。 リポジトリ: https://github.com/lowlighter/vercel-deno パッケージ: @lowlighter/vercel-deno vercel-community/denoがしばらくメンテナンスされていないことや、現時点における最新のDenoの規約 (deno serveなど) に追従することなどを目的に開発されているようです。

November 30, 2025

2025/11/17〜2025/11/23の最新情報

Denoの直近のアップデート まだリリースは行われていませんが、直近でいくつか新機能がマージされているため紹介いたします。 --ignore-envオプションが追加 Deno--ignore-envオプションが実装されています。 feat: add --ignore-env=... #31187 例えば以下のようなスクリプトがあったとします: // main.js console.info(Deno.env.get("HOME")); console.info(Deno.env.get("DENO_DIR")); このスクリプトを--ignore-env=HOMEを指定して実行すると、以下のように出力されます: $ deno run --allow-env --ignore-env=HOME main.js undefined /home/uki00a/.cache/deno Deno.env.toObject()を実行した場合、--ignore-envで指定された環境変数が返却結果から除外されます。 この機能はdeno.jsonにおけるパーミッションセット (--permission-set)においてもサポートされています。 { "permissions": { "default": { "env": { "allow": true, "ignore": ["HOME"] } } } } deno audit --socket deno auditコマンドに--socketオプションを追加するPRがマージされています: feat(unstable): add socket.dev integration for deno audit #31106 このオプションを指定すると、@socketsecurity/bun-security-scannerでも使用されているfirewall-api.socket.devエンドポイントを使用してパッケージの検査が行われます。 $ deno audit --socket No known vulnerabilities found Socket....

November 23, 2025

2025/11/10〜2025/11/16の最新情報

Deno 3.0.0-rc.0 Deno 3.0.0-rc.0 がリリースされています (#31258) v2.5.6 からの差分 まだ dl.deno.land には公開されていないようなので、変わりに canary バージョンで説明します (3.0.0-rc.0+138b2e0) $ deno upgrade 138b2e0e 破壊的変更 下記のタイマーAPIがWeb標準ではなく、Node.js互換 (node:timers) のAPIへと置き換えられています (#31272) setTimeout() setInterval() clearTimeout() clearInterval() globalThis.setTimeout()を実行すると、number型の値ではなくTimeoutオブジェクトが返却されるよう挙動が変わります。 パーミッション --deny-*よりも--allow-*がより特定的であれば、--allow-*の方が優先されるよう挙動が変更されています (#31224) # `docs/*`へのアクセスは拒否するが、`docs/foo.txt`についてのみ許可します (今までのバージョンでは`NotCapable`エラーが発生しました) $ deno --allow-read=docs/foo.txt --deny-read=docs main.js また、--allow-envと--deny-envを併用した際のDeno.env.toObject()およびprocess.envの挙動が変更されています。具体的には、以下のようにDenoを実行した際に、Deno.env.toObject()の返却結果からDENO_DIRとDENO_INSTALL_ROOTが除外されます (#31267) $ deno run --allow-env --deny-env=DENO_DIR,DENO_INSTALL_ROOT main.js allowScripts deno.jsonでallowScriptsフィールドがサポートされています (#31075) allowScriptsの詳細については先週のページを参照いただければと思います。 deno compile deno compileコマンドで--preloadオプションがサポートされています。--preloadで指定されたスクリプトは実行可能ファイル内に組み込まれ、生成された実行可能ファイルが実行される都度、自動で--preloadオプションで指定されたスクリプトが適用されるようです (#31152) deno repl --eval-fileオプションで=の指定の省略がサポートされています (#31151) $ deno repl --eval-file main.js deno coverage deno coverage --htmlで生成されたHTMLレポートにダークモードとライトモードを切り替えるためのトグルが追加されています (#31140)...

November 16, 2025

2025/11/03〜2025/11/09の最新情報

Denoの直近のアップデート deno.jsonにallowScriptsフィールドが追加 まだリリースは行われていませんが、deno.jsonにallowScriptsフィールドを追加するPRがマージされています。 feat(config): allow storing npm constraints to allow running lifecycle scripts for #31075 --allow-scriptsオプションと同様にライフサイクルスクリプトの実行を許可するnpmパッケージの一覧を指定することができます。 allowScriptsには以下のいずれかの形式で設定が可能です。 true (すべてのnpmパッケージに対してライフサイクルスクリプトの実行を許可) { "allowScripts": true } 配列形式 (指定されたnpmパッケージに対してのみライフサイクルスクリプトの実行を許可) { "allowScripts": ["npm:duckdb", "npm:better-sqlite3"] } オブジェクト形式 (ライフサイクルスクリプトの実行を許可または拒否したいnpmパッケージの一覧を指定可能) { "allowScripts": { "allow": ["npm:duckdb", "npm:better-sqlite3"] } } { "allowScripts": { "allow": true, "deny": ["npm:duckdb"] } } --allow-scriptsとallowScriptsが併用された場合、--allow-scriptsの指定が優先されるようです。 パーミッションブローカーのドキュメント Denoの公式ドキュメントにパーミッションブローカーに関する解説が追加されています。...

November 9, 2025

2025/10/27〜2025/11/02の最新情報

Deno v2.5.5 & Deno v2.5.6 Deno v2.5.5とDeno v2.5.6がリリースされています。 typescript-goの実験的サポート (--unstable-tsgo) typescript-goの実験的サポートが行われています (#30920) deno checkコマンドに--unstable-tsgoを指定すると、typescript-goを使用した型チェックが実施されます。 $ deno check --unstable-tsgo mod.ts minimumDependencyAge あるパッケージの最新バージョンがインストールされるまでの猶予期間の設定がサポートされています (#30752, #31007, #31031) deno.jsonのminimumDependencyAgeフィールドまたは--minimum-dependency-ageオプションによって猶予期間を指定可能です。 { "minimumDependencyAge": { // 公開されてから最低でも1日 (=1440分) 以上経過しているバージョンのみをインストールします "age": 1440, // `minimumDependencyAge`の適用を除外したいパッケージを指定します "exclude": ["npm:@my-company/some-package"] } } $ deno install --minimum-dependency-age=1440 npm:preact deno audit deno auditコマンドが実装されています (#30966) npmレジストリの Full Audit エンドポイント (/-/npm/v1/security/audits) を利用したパッケージの検査を行うことができます。 $ deno audit No known vulnerabilities found $ deno audit --level=critical No known vulnerabilities found まだマージはされていませんが、deno auditコマンドに--socketオプションを実装するPRが作成されています。...

November 2, 2025