Deno v1.29.0

Deno v1.29がリリースされました。

以下に変更内容をまとめたため、よろしければ参照ください。

deno_std v0.168.0

deno_std v0.168.0がリリースされました。


https://github.com/denoland/deno_std/releases/tag/0.168.0

std/archiveのファイル構成の変更

新しいファイルとしてstd/archive/untar.tsが追加されています。

これに伴い、std/archive/tar.tsからの下記の読み込みが非推奨化されています。

  • TarHeader
  • Untar
  • TarEntry

今後、これらのAPIを利用する際は、std/archive/untar.tsから読み込むことが推奨されます。

std/ioのファイル構成の変更

std/ioパッケージの下記ファイルが細分化されています。

具体的にはstd/fsなどのように、各APIがそれぞれ単独のファイルで提供されるように構造が変わっています。

例えば、std/io/readers.tsに配置されていたStringReaderは、今後はstd/io/string_reader.tsから読み込むことが推奨されます。

より詳しくは公式のブログ記事を参照いただければと思います。

std/dotenv - config()load()へリネーム

std/dotenvで提供されているAPIがリネームされています。

リネーム前リネーム後
configload
configSyncloadSync
ConfigOptionsLoadOptions

古い名前のAPIも削除されずに残されてはいますが、現在は非推奨化されているため、もし使用されている場合は新しい名前への移行が推奨されます。

std/nodeの改善

std/node/httpServerResponseクラスでTransfer-Encoding: chunkedが意図通りに動作しない問題が修正されています。

また、Buffer.toStringによるUTF-8のデコードが大幅に高速化されています。

Elsaの開発について

Denoに影響を受けたJavaScript/TypeScriptランタイムであるElsaで、内部実装の書き換えが検討されているようです。

元々、ElsaはGoとQuickJSで実装されていました。

(まだ未確定ではありますが) 現在は下記のような変更が検討されているようです。

  • 内部実装のRustへの置き換え
  • V8/JavaScriptCore/QuickJSなどの様々なエンジンのサポート
  • stcの採用

詳細については以下のTweetを参照ください。