Deno v2.9.4
Deno v2.9.4がリリースされています。
deno desktop
React Routerが検出され かつ --hmrが指定された際に、React Routerのdevサーバーが起動されるように改善されています(#35900)
deno add
--minimum-dependency-age
deno add/deno removeコマンドで--minimum-dependency-ageオプションがサポートされています (#36099)。
必要に応じて--minimum-dependency-age=0を指定することで、deno.jsonのminimumDependencyAgeを一時的に無効化できるようにするなどことが目的のようです。
Web Cache API
データの保存先が変更
Web Cache APIにおいて、localStorageなどと同様に$DENO_DIR/location_dataディレクトリを使用するように変更されています (#36145)。$DENO_DIR/location_data/web_cache配下にデータが保存されます。
Node.js互換性の改善
node:worker_threads
Deno v2.9で実装されたWeb Locks APIをベースにworker_threads.locksが実装されています (#35963)
node:crypto
createCipheriv()及びcreateDecipheriv()でchacha20がサポートされています (#36016)
node:buffer
Buffer#indexOf(), Buffer#lastIndexOf(), 及びBuffer#includes()のend引数がサポートされています (#35872)
セキュリティ
deno x
deno xコマンドで--minimum-dependency-age=0オプション及びdeno.jsonのminimumDependencyAgeがサポートされています (#36025)
Deno.umask()
Deno.umask()及び process.umask() (node:process) が--allow-sys=umaskを要求するように挙動が変更されています (#36222)
Deno.UnsafeWindowSurface
Deno.UnsafeWindowSurfaceの作成時に--allow-ffiパーミッションが要求されるように挙動が変更されています (#36080)
V8
Deno内部のV8が14.9から15.0へアップデートされています (#36098, https://github.com/denoland/rusty_v8/compare/v149.4.0…v150.2.0)
QuickJS バックエンド
現時点ではまだマージされていませんが、QuickJS (正確にはQuickJS-ngというフォーク版が使用されるようです) をDenoのバックエンドとして利用できるようにする対応が試みられているようです:
いずれのPRにおいてもv8xをベースに実装されており、Deno本体のビルド時にV8またはQuickJSのいずれかを切り替えることができるようです。
#35849のPRによると、HTTPなどにおけるスループットは低下するものの、ランタイムのサイズが60%以上軽減されることが期待されるようです。
deno.land/xが読み込み専用に変更
Denoのパッケージレジストリであるdeno.land/xが読み込み専用に変更されています:
今後、パッケージを公開したい場合はJSRへの移行が推奨されています。