Deno v2.9.3
Deno v2.9.3がリリースされています。
deno add/deno install
--no-save/--save-optional
--no-save及び--save-optionalオプションが追加されています (#36039)
--no-saveオプションが指定されると、package.json及びdeno.jsonは更新せずに、指定されたパッケージのインストール及びdeno.lockの更新のみが行われます。
--save-optionalオプションが指定されると、指定されたパッケージをインストールしつつ、 package.jsonの optionalDependenciesに該当パッケージが追加されます。
--min-dep-age
--min-dep-ageオプションが追加されています (#35914)
実体は--minimum-dependency-ageオプションへの alias です。
deno compile
--target aarch64-pc-windows-msvc
deno compileコマンドで--target aarch64-pc-windows-msvcオプションがサポートされています (#36004)
Deno v2.6.8にてWindows ARM64のサポートが追加されていたものの、--targetオプションではサポートされていなかったようです。
Deno.createHttpClient()
Deno.createHttpClient()にhttp2MaxHeaderListSizeオプションが追加されています (#33194)
HTTP/2のSETTINGS_MAX_HEADER_LIST_SIZEに相当します。
セキュリティ
BYONM
BYONM ("nodeModulesDir": "manual") の有効化時にrequire()にnode_modules/../path/to/file.jsのような形式のパスが指定されると、意図せず--allow-readの要求が迂回されてしまう問題が修正されています (#35882)
パフォーマンス改善
crypto.randomUUID()
crypto.randomUUID()のパフォーマンスが改善されています (#35953)。
初回の呼び出し時にあらかじめ128個分のUUIDを生成してプールしておき、以降の呼び出しにおいてはプールされたUUIDを返却することで、オーバーヘッドが削減されているようです。プールされているUUIDが尽きたら、再度、UUIDの生成が行われます。
ベンチマークによるとおおよそ2倍近くまでスループットが改善されているようです。
node:fs
cp()において、一定条件を満たす場合のパフォーマンスが最適化されています (#35856)
特にrecursiveオプションが有効化された際の振る舞いが改善されており、macOSにおいて、可能な場合はclonefile()の使用を試みることによって大幅なパフォーマンス改善が試みられているようです。
node:sqlite
StatementSync#all()パフォーマンスが改善されています (#35863)。行数が多い場合のパフォーマンスがNode.jsと同等以上にまで改善されているようです。
deno lint - graph-aware (cross-file) lint rules — prototype / RFC
まだマージはされていませんが、PoCとしてdeno lintのプラグインシステムで複数のモジュールにまたがったLintルールを実装するための仕組みの開発が行われているようです。
現時点 (2f4e00e) での実装としては、Deno.lint.RuleにcreateGraphRule()フックが追加されており、ctx引数の.graphプロパティーからアプリケーションを構成する各モジュールの情報を参照できる想定のようです。