Denoのロードマップ (2023年 Q1)
Denoの2023年 Q1のロードマップが公開されました。
以下のページに内容をまとめたため、よろしければ参照いただければと思います。
https://github.com/denoland/deno/issues/17475
Deno v1.29.4
Deno v1.29.4がリリースされました。
Node-APIに関する改善
Node-APIの互換性の向上が実施されています。
napi_get_arraybuffer_info/napi_get_buffer_info/napi_get_typedarray_infoでlengthなどの各引数がNULLであった際のケースが考慮されるように挙動が改善されています。napi_create_errorやnapi_is_error,napi_throw_errorなどのエラー関連APIの互換性が向上されています。
Flash(Deno.serve)の改善
Request.cloneを呼ぶと、エラーが発生する問題が修正されています。- リクエストメソッドが
POST/PUT/PATCHのいずれかで かつDeno.serveに渡したハンドラでリクエストボディがconsumeされていない場合、プロセスがパニックする問題が修正されています。 - レスポンスボディとして設定した
ReadableStreamからUint8Array以外の値がenqueueされた際に、Deno.serveに渡したonErrorハンドラが呼ばれず、Unhandled rejectionが発生してしまう問題が修正されています。
Deno APIに関するバグ修正
Deno.copyFileSyncを実行した際に、コピー先のファイルへパーミッションが受け継がれない問題が修正されています。- Windowsで
Deno.systemMemoryInfo()を呼んだ際にswapTotalやswapFreeとして返却される値の信頼性が向上されています。
https://github.com/denoland/deno/releases/tag/v1.29.4
deno_std v0.173.0
deno_std v0.173.0がリリースされました。
std/node
前回のリリースで追加されたnode:clusterがリバートされています。
Deno本体でnpm互換が有効化されている場合に、node:clusterを使っていない場合であっても、NODE_CLUSTER_SCHED_POLICYなどの環境変数に対するパーミッションが要求されてしまうためのようです。
現在、Deno本体でDeno.permissions.querySync()の実装が進められており、これが正式にサポートされたら、改めてnode:clusterを追加することが検討されているようです。
std/fs/expand_glob
expandGlob(Sync)のglobstarオプションのデフォルト値がfalseからtrueへ変更されました。
std/streams/text_line_stream
TextLineStreamで最後の行の後に空文字列が余分にenqueueされてしまう問題が修正されています。
https://github.com/denoland/deno_std/releases/tag/0.173.0
eslint_binary
eslint_binaryという、DenoのNode.js互換性やV8 Snapshot、ESBuildなどを活用して、ESLintをシングルバイナリ化するプロジェクトが公開されています。
このプロジェクトはあくまでPoCのため、今後どうなるかはまだ不明ですが、READMEにロードマップが公開されており、ESLintのCLIをRustで書き直すことなども検討されているようです。
esm.shの2023年のロードマップ
esm.shの今年のロードマップが公開されています。
プレイグラウンドにコードの共有機能を実装することや、安定性の向上などを図ることが検討されているようです。
Gluon
Gluonという、Node.js/Deno/Bunをサポートするデスクトップアプリ用のフレームワークが開発されているようです。
Denoサポートのステータスについては、以下のissueで公開されています。