Deno v2.4.1

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

Tunnelling

deno run--connectedオプションが追加されています (#30022)。 おそらくDeno Deploy Early Accessに関連した機能であると思われます。

deno run--connectedオプションもしくはDENO_CONNECTED環境変数が指定されると、まずDenoは指定されたQUICのエンドポイントへ自動的に接続を開始します。デフォルトではtunnel.global.prod.deno-cluster.net:443へ接続されるようです (deno_tunnelというリポジトリが公開されており、おそらくこれが利用されていると思われます)

その後、このDenoプロセス内でDeno.serve()が呼ばれると、Denoは起動時に接続されたQUICコネクションからリクエストを待ち受けるよう挙動が変更されるようです。

QUICエンドポイントへの認証については、deno deploy tunnel-loginコマンドによって取得したトークンを使用して認証が行われるようです (トークンはkeyring-rsを使用して保存されるようです)。また、この際にdeno.jsondeployフィールドに設定情報が保存されるようです (org, app)

OpenTelemetry

vsockトランスポート

OTEL_DENO_VSOCK環境変数がサポートされています (#30001)

この環境変数にカンマ区切りでCIDとポートを設定しておくと、指定されたvsock向けに Signals が送信されるようです。

Deno v2.3.5での対応のロールバック

Deno v2.3.5で実施された、シグナル受信時にバッファリングされていた Signals をフラッシュする対応が Revert されています (#30019)

プロセスが意図せず終了しなくなってしまう問題が発生することがあるようで、それを回避することが目的のようです (#29590)

deno bundleのバグ修正

deno bundleに関するバグ修正が実施されています:

  • ブラウザー向けのバンドル (--platform browser) がブラウザーでうまく動作しない問題が修正されています (#30023)
  • --minifyが適用された場合にrequire()が適切に動作するよう修正されています (#29997)
  • npmパッケージ中のsloppy importsが適切に解決されるよう改善されています (#29989)

deno serve - Import mapsによるエントリーポイントの解決がサポート

Deno v2.4deno runコマンドに導入されたImport mapsによるエントリーポイントの解決がdeno serveコマンドでも動作するよう改善されています (#29974)

--unstable-raw-imports - npmパッケージに関する挙動の変更

npmパッケージ中にtype: "text"もしくはtype: "bytes"形式のimportが検出された場合、--allow-readを要求するように挙動が変更されています (#29990)

Node-API

Deno v2.3.7で実施されたnapi_add_finalizer()への改善が Revert されています (#30018)

drizzle-kitなどの一部パッケージでプロセスがパニックしてしまう問題があったようで、一時的に変更を取りやめることが決定されたようです。

deployd: Self-Hosted Deno Deploy

Denoの公式からdeploydというリポジトリが公開されています:

現時点ではリポジトリにはREADME.mdのみが存在する状態ですが、これはDeno Deployをセルフホストすることを目的としたもののようで、Dockerコンテナーの起動方法などが記載されています。

以前に公開されていたDeno Deploy NextGenについては、現在ではリポジトリが削除されており、今後はdeploydのリポジトリなどを参照すると良さそうです。

Deno Deploy Cloud Connections

Deno Deploy Early Accessに関するChangelogが更新されています。

Cloud Connections という機能が追加されているようで、Deno DeployからAWSやGCPのリソースへのアクセスを安全かつ容易に行えるようにすることを目的とした機能のようです。以下のページで公式ドキュメントが公開されています: