2023/02/13〜2023/02/19の最新情報
先週のDenoの変更点 先週はDenoのリリースが行われていないため、直近のコミット内容をいくつか紹介いたします。 これらの変更が含まれると思われるDeno v1.31については、今週にリリースされる予定のようです。 deno_std/nodeのDeno本体への組み込み 今まで、deno_std/nodeとDeno本体は別々に開発されていた都合もあり、Denoからnpmパッケージを利用する際は、https://deno.land/std/nodeのダウンロードが背後で行われていました。 以下のコミットなどにおいて、V8のスナップショットの仕組みを利用して、deno_std/nodeをDeno本体へ組み込む変更が行われています。 refactor: allow to provide polyfills for Node modules from the snapshot (denoland/deno#17706) feat(ext/node): embed std/node into the snapshot (denoland/deno#17724) feat: wire up ext/node to the Node compatibility layer (denoland/deno#17785) これにより、https://deno.land/std/nodeからのモジュールのダウンロードが不要になるため、起動の高速化などが期待されます。 また、deno_std/nodeがDeno本体へ組み込まれたことにより、Node.js互換レイヤーの実装でDenoの内部APIの活用が行いやすくなり、パフォーマンスの向上や今まで実装が難しかったモジュールの対応などが進みやすくなりそうです。具体的には、以下のPRでnode:v8の実装が追加されています。 feat(ext/node): implement node:v8 (denoland/deno#17806) 今後、Node.js互換レイヤーの実装をJavaScriptからRustに置き換えていくことも検討されているようで、以下のissueで今後の計画が列挙されています。 Rewrite some of JavaScript API in “ext/node” to Rust (denoland/deno#17809) また、これらの変更を受けて、deno_std/nodeについては削除が検討されているようです。(今後は、Deno本体のリポジトリで開発が進められるようです) Remove std/node, it was merged into Deno itself (denoland/deno_std#3206) 今後、もしdeno_std/nodeを利用したいケースが出てきた際は、削除前のバージョンを明示してimportをする必要が出てくるかもしれません。...