Deno v2.7.2/v2.7.3/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)

また、下記改善も実施されています:

  • ECDSA鍵の生成/署名などにおけるsecp256k1曲線 (namedCurve: "secp256k1") のサポート (#32390)
  • publicEncrypt(), privateDecrypt()及びprivateEncrypt()でDER形式の鍵がサポート (#32291)
  • Sign#sign()及びVerify#verify()padding: constants.RSA_PKCS1_PSS_PADDINGの指定がサポート (#32269)
  • EC鍵のSEC1形式のimport及びexportがサポート (#32401)

node:dgram

下記 API が実装されています (#32381)

  • Socket#addSourceSpecificMembership()
  • Socket#dropSourceSpecificMembership()
  • Socket#setMulticastInterface()
  • Socket#setTTL()

また、Node.js に合わせてSocket#addMembership()Socket#setBroadcast()などの各種設定操作を同期的に動作させる改善も実施されています。

node:http

request()socketPathオプションでWindowsの名前付きパイプの指定がサポートされています (#32414)

dockerodeなどを Windows でサポートすることが目的のようです。

node:assert

node:assertの互換性が改善され、Node.jsにおけるnode:assertのテストスイートすべてパスしたようです (#32434)

node:worker_threads

eval: trueを指定して作成されたWorker内でrequire()__dirnameなどのCommonJS向けAPIが利用できるよう改善されています (#32266)

node:fs/promises

watch()が返却したオブジェクトに適切にAsyncIteratorを実装させる改善や、signal引数で指定されたシグナルがすでにabortされていた際の取り扱いが改善されています (#32378)

node:process

Windowsにおいて、Deno.addSignalListener()及びprocess.on()SIGWINCHがサポートされています (#32343)

また、umask()が実装されています (#32385)

node:buffer

resolveObjectURL()が実装されています (#32382)

node:vm

createContext()constants.DONT_CONTEXTIFYの指定がサポートされています (#32337)

require(esm)

例外を投げるESMファイルをrequire()した際に、その例外をキャッチ出来ない問題が修正されています (#32347)

NPM_CONFIG_REGISTRY

NPM_CONFIG_REGISTRY.npmrcが併用された際に、NPM_CONFIG_REGISTRYの方が優先されるように修正されています (#32394)

console.table()

console.table()Iteratorオブジェクトが渡された際に、空のテーブルではなく各要素の内容が適切に出力されるように改善されています (#32379)

node:wasiの実装について

まだマージはされていませんが、Denoにnode:wasiを実装するPRが作成されています:

WASIクラスの実装と各種システムコールAPIの実装が薦められています。