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()infoAccessrawsubjectAltNametoLegacyObject()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の実装が薦められています。