Deno v2.6.7

Deno v2.6.7がリリースされています。

JSR - @jsrスコープの取り扱いの変更

@jsrスコープのnpmパッケージがJSRから取得されるよう挙動が変更されています (#31925)。具体的には、以下を実行すると@uki00a/deno-json-lintがインストールされます。

# `npm:@jsr/*` は registry.npmjs.org からダウンロードされます
$ deno install npm:@jsr/uki00a__deno-json-lint

$ cat deno.json | jq '.imports["@jsr/uki00a__deno-json-lint"]'
"npm:@jsr/uki00a__deno-json-lint@^0.4.0"

デフォルトではhttps://registry.npmjs.org からパッケージがダウンロードされますが、 JSR_NPM_URL環境変数または.npmrcによって設定変更が可能です。

Deno.cron() - 外部サーバーへのタスク管理の移譲がサポート (DENO_UNSTABLE_CRON_SOCK)

Deno.cron()によるジョブ管理をソケットを介して外部サーバーへ移譲する機能が実装されています (#31952)

この機能はDENO_UNSTABLE_CRON_SOCKにソケットへのURLを指定することで有効化されます (例: unix:/path/to/cron.sock)。指定されたソケットとの間でJSON形式のメッセージを交換し合うことでジョブの管理が行われます。

  1. DenoプロセスでDeno.cron()が呼ばれると、ソケットに対してタスクの登録用メッセージが送信されます ({ "kind":"register", "crons": [{ "name": "<task-name>", "schedule": "<cron-expression>" }] })
  2. サーバーはソケットに対してタスクの実行を指示するメッセージ ({ "kind": "invoke" }) を書き込むことで、そのメッセージを受信したDenoプロセスで指定されたタスクが実行されます。
  3. Denoプロセスでタスクの実行が完了すると、ソケットに対して実行完了メッセージが書き込まれます ({ "kind": "result", "name": "<task-name>", "success": true })

おそらく、主にDeno Deploy向けの機能であると推測されますが、上記メッセージを処理するサーバー実装を用意することで、独自のジョブ管理の仕組みが実装できそうです。

Node.js互換性の改善

node:test

下記のモック関連APIが実装されています (#31954)

  • mock.fn()
  • mock.getter()
  • mock.method()
  • mock.reset()
  • mock.restoreAll()
  • mock.setter()

node:sqlite

DatabaseSyncで下記オプションのサポートが追加されています (#31919)

  • readBigInts
  • returnArrays
  • allowBareNamedParameters
  • allowUnknownNamedParameters

node:fs/promises

FileHandle#readv()が実装されています (#31943)

node:http

2.6.4keepAliveオプションがサポートされましたが、その影響でECONNRESETが発生することがあった問題が修正されています (#31932)

NODE_OPTIONS - --requireのサポート

NODE_OPTIONS--requireが指定された際に、そのファイルが読み込まれるよう改善されています (#31949)

DOMException

Node.jsとの互換性のため、DOMExceptionの第2引数でオブジェクト形式の引数がサポートされています (#31939)

Inspector

--inspect-publish-uidオプションが実装されています (#31927)

Node.jsにも同名オプションがあるようで、VSCodeから使用されているようです。

Deno.serve()

Deno.HttpServer#shutdown()が呼ばれた際に、まだリクエストが受信されていないコネクションもgracefulに停止されるよう改善されています (#31959)

また、DENO_SERVE_ADDRESSで指定されたアドレスがDeno.serve()の2回目移行の呼び出しにも適用されてしまう問題が修正されています (#31935)

Deno.UnixListener

Deno.UnixListenerが破棄される際に、ソケットファイルが自動で削除されるよう挙動が修正されています (#31947)。--watchとの併用時にエラーが発生することを回避することなどが目的のようです。

Deno.open()

/dev/ttyを開く際は--allow-allではなく--allow-readの指定のみで開けるよう修正されています (#31105)

Deno.resolveDns()

大きなメッセージを取り扱えるよう、内部的にEDNS0が有効化されています (#31951)

deno x

--unstable-*オプションがサポートされています (#31942)

deno lint

Deno.lint.Program.commentsが別のファイルのコメントを返してしまうことのある問題が修正されています (#31956)

V8

Deno内部のV8のバージョンが145へアップデートされています (#31873)

また、現時点ではまだマージはされていませんが、Temporal APIを安定化させるためのPRが作成されており、2.7.0のマイルトーンに含まれています。

deno_stdのリリース

deno_stdのリリースが行われています (release-2026.01.30)

@std/http@1.0.24

@std/http@1.0.24がリリースされています。

@std/http/unstable-server-sent-event-streamが追加

新規モジュールとして@std/http/unstable-server-sent-event-streamが追加されています (#6957)

ServerSentEventParseStreamというTransformStreamが提供されており、server-sent eventsの解析をしてくれます。fetch()と併用すると便利そうです。

@std/http/unstable-formdata-decoder-stream及び@std/http/unstable-formdata-encoder-streamが追加

それぞれFormDataDecoderStream及びFormDataEncoderStreamが提供されており、multipart/form-data形式のデータをStream APIをベースに取り扱うことができます (#6928)

@std/tar@0.1.10

@std/tar@0.1.10がリリースされています。

@std/tar/tar-stream

TarStreamでシンボリックリンク (type: "symlink") がサポートされています (#6976)

@std/async@1.1.1

@std/async@1.1.1がリリースされています。

@std/async/unstable-circuit-breaker

CircuitBreakerに対して下記変更が実施されています (#6951)

  • onHalfOpenコールバックがサポート
  • CircuitBreaker#execute()AbortSignalのサポート (signalオプション) が追加
  • 単純化のため、failureCount/isAvailable/getStats()の3つのAPIが削除

@std/cli@1.0.27

@std/cli@1.0.27がリリースされています。

@std/cli/unstable-prompt-select / @std/cli//unstable-prompt-multiple-select

promptSelect() 及び promptMultipleSelect()fitToRemainingHeightオプションが追加されています (#6978)

trueが指定された場合、スクリーン全体の高さではなく、現在のカーソル位置からの残りの高さに基づいて利用可能な行数が計算されるよう振る舞いが変わるようです。

@std/collections@1.1.5

@std/collections@1.1.5がリリースされています。

@std/collectionsdeep-merge

内部におけるオブジェクトの割り当ての削減などにより、deepMerge() のパフォーマンスが改善されています (#6948)

denoland/skills

Deno公式のAgent Skillsが公開されています。

Deno本体に加えてDeno DeployやFreshなどに関するSKILL.mdも提供されています。

Deno Deployのアップデート

Deno Deploy changelog が更新されています:

Deno Deployアプリケーションの設定をdeno.jsonでも実施できるよう改善されたようです (Editing app configuration from source code)。もしDeno Deployのダッシュボードとdeno.jsonの設定が両方とも存在する場合、deno.jsonの方の設定が優先されるようです。

また、アプリケーションに紐づくタイムラインを格納したDENO_TIMELINEという環境変数が追加されています。

fresh-session v0.9.0

fresh-session v0.9.0 がリリースされています (#42)

このリリースでは Fresh v2 への対応が実施されており、JSRへパッケージの公開も行われています。

また、MySQLやPostgreSQLなど向けにSqlSessionStoreが追加されています。