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で公開されています。