Deno v1.34.2
Deno v1.34.2がリリースされました。
Node.js互換性
node:http2が追加されました。http2.connectとhttp2.createServerの基本的な実装が追加されています。
node:fs/promises:FileHandleの以下のメソッドが実装されました。readFile()read()write()close()
node:child_process:spawnのstdioオプションで[0, 1, 2]の指定がサポートされました。node:process:process.stdoutにpipeされたReadableストリームがクローズされた際に、process.stdoutも一緒にクローズされてしまう問題が修正されています。
Web API
- 巨大な
ArrayBufferをconsole.logなどで表示しようとした際に、誤ってdetached状態として表示される問題が修正されました。 EventTargetのリスナ内で同一イベントへのリスナを新しく登録した際に、登録されたばかりのリスナが即座に呼ばれてしまう問題が修正されました。
パフォーマンス改善
主にHTTPサーバ(Deno.serve)に対して、様々なパフォーマンス改善が実施されています。
- perf: use sendto syscalls #19414
- perf(ext/http): Add a sync phase to http serving #19321
- perf(ext/http): Use flat list of headers for multiple set/get methods #19336
- perf(ext/http): Migrate op_http_get_request_headers to v8::Array #19354
- perf(ext/http): Migrate op_http_get_request_method_and_url to v8::Array #19355
- perf: optimize RegExp usage in JS #19364
- perf(http): avoid flattening http headers #19384
deno_std v0.191.0
deno_std v0.191.0がリリースされました。
std/{csv,http,path}: 非推奨化されたファイル・APIの削除
- std/csv/stream.tsが削除されました (今後はstd/csv/csv_parse_stream.tsの使用が推奨されます)
std/http/util.tsのcompareEtagが削除されました (今後はstd/http/etag.tsの使用が推奨されます)std/path/mod.tsのsepが削除されました (今後はSEPの使用が推奨されます)
std/htmlが追加
新しいモジュールとしてstd/htmlが追加されました。
HTMLエンティティのエスケープ・アンエスケープを行うための機能が提供されているようです。
std/async/retry.ts
retry()にjitterオプションが追加されました。(デフォルトは1)
0を指定するとjitterを無効化できます。
std/collections
std/collectionsの各APIが配列だけでなくIterable<T>を引数として受け取るように改善されました。- sortBy()に
options引数が追加されました。orderオプション("asc" | "desc")によってソート時の並び順を指定できます。(デフォルトはasc)
std/crypto
crypto.digestでBLAKE2B-224がサポートされました。
std/toml/stringify.ts
stringify()で以下のバグが修正されています。
- オブジェクトのキーに空文字列があった際に、不正なTOMLが出力される
- 値に空のオブジェクトが含まれていた際に、適切にTOMLが出力されない
- インラインオブジェクトのキーに
/などの特殊なキーがあると、適切にTOMLが出力がされない
Deno.listenDatagramの安定化について
Deno.listenDatagramを安定化するためのPRが作成されています。
この変更は、Deno v1.35でのリリースが検討されているようです。
今のところUDPソケット(transport: "udp")のみが安定化される予定のようで、Unixドメインソケット(transport: "unixpacket")についてはこの変更では安定化されない予定のようです。
denoland/publish-folder
まだ開発中のため使用は推奨されないようですが、deno.land/xへ特定のディレクトリを公開するためのGitHubアクションが公開されています。
esm.sh v125
esm.sh v125がリリースされました。
Deno v1.33.2以上のバージョンが使用されている際は、?target=denonextが自動で適用されるように変更されたようです。
https://twitter.com/jexia_/status/1666370421720219648
deno_tui v2
DenoのTUIライブラリであるdeno_tuiのv2がリリースされています。
主な変更点:
- 各コンポーネント名から
Componentサフィックスが削除 (例:ButtonComponent->Button) - リアクティブにUIを更新するために、SignalやComputedなどが導入
- パフォーマンスの改善
など