QUICとWebTransport APIのサポートについて
QUICのサポート
Denoのmain
ブランチにQUICを実装するPRがマージされています。Deno v2.2あたりでリリースされる可能性がありそうです:
quinnをベースに以下のAPIが実装されており、利用には--unstable-net
の指定が必要なようです:
Deno.connectQuic
Deno.listenQuic
Deno.QuicBidirectionalStream
(Deno.QuicConn#createBidirectionalStream
で作成できます)Deno.QuicConn
(Deno.connectQuic
などから返却されます)Deno.QuicListener
(Deno.listenQuic
から返却されます)Deno.QuicReceiveStream
(Deno.QuicConn.incomingUnidirectionalStreams
で取得できます)Deno.QuicSendStream
(Deno.QuicConn#createUnidirectionalStream
で作成できます)
WebTransport APIのサポート
まだマージはされていませんが、先程のQUICサポートをベースにWebTransport APIを実装するPRも作成されています:
このPRではWebTransport APIに加えてDeno.upgradeWebTransport
というWebTransportサーバーを立てるための独自のAPIも実装されているようです。引数にDeno.QuicConn
を渡すことで、WebTransport
オブジェクトを返却してくれます。
WebTransport APIについてもQUICと同様に、利用するには--unstable-net
の指定が必要なようです。
deno lint
- JavaScriptプラグインを実行するための内部APIが追加
以前に紹介したdeno lint
でのプラグインサポートの件についてですが、ひとまずDeno[Deno.internal].runLintPlugin
という内部的なAPIの実装(今のところdeno test
コマンドの実行時以外では参照できないよう制御されています)がmain
ブランチへマージされています。
このPRではまだCLIオプションなどは実装されていないためまだ一般的に利用できる状況ではなさそうですが、JavaScriptプラグインに関するテストコードが追加されており、今後、プラグインを書く際などの参考になりそうです。
deno_std
のリリース
deno_std
のリリースが行われています:
@std/cli@1.0.9
@std/cli@1.0.9がリリースされています。
promptMultipleSelect
が追加
以前に追加されたpromptSelect()
に続いて、promptMultipleSelect()
(@std/cli/unstable-prompt-multiple-select
)というAPIが追加されています。promptMultipleSelect()
は選択肢から複数の値を選択できます。
@std/fs@1.0.7
& @std/fs@1.0.8
@std/fs@1.0.7と@std/fs@1.0.8がリリースされています。
Deno APIのポート
先週に紹介した@std/fs
をNode.jsで動作させる対応に向けて、以下の2つのモジュールが追加されました:
@std/fs/unstable-stat
@std/fs/unstable-lstat
@std/testing@1.0.7
& @std/testing@1.0.8
@std/testing@1.0.7と@std/testing@1.0.8がリリースされています。
@std/testing/bdd
- Sanitizersに関するカスタマイズが実験的にサポート
@std/testing/bdd
においてSanitizersに関する設定をカスタマイズできるようにするために、configureGlobalSanitizers
(@std/testing/unstable-bdd
)という実験的APIが追加されています。
@std/testing/bdd
- describe.ignore
の修正
describe.ignore
に渡した関数が実行されてしまう問題が修正されています。
@std/cbor@0.1.4
@std/cbor@0.1.4がリリースされています。
Map
のサポート
encodeCbor
(@std/cbor/encode-cbor
)と decodeCbor
(@std/cbor/decode-cbor
)でMap
がサポートされています。
@std/encoding@1.0.6
@std/encoding@1.0.6がリリースされています。
@std/encoding/unstable-base32crockford
が追加
@std/encoding/unstable-base32crockford
という新規モジュールが追加されています。Crockford’s Base32が実装されています。
@std/expect@1.0.10
@std/expect@1.0.10がリリースされています。
expect.arrayContaining
とexpect.objectContaining
を併用した際に意図通りに動作しない問題が修正されています。
lint.deno.land
からdocs.deno.com
への移行について
deno lint
に関する各種Lintルールのドキュメントがlint.deno.land
からdocs.deno.com
への移行が進められているようです。
今まで、DenoのCLIと各種Lintルールは別々のリポジトリで開発が進んでいる関係で、lint.deno.land
ではDenoのCLIにまだ含まれていないルールも表示される課題などがありましたが、docs.deno.com
へドキュメントを統合することで、この課題などの解消が目的とされているようです:
直近ですでに移行が開始されており、docs.deno.com/lintからもLintルールを閲覧できます:
次世代JSランタイム(Deno,Bun)の使い方
Zennにおいて次世代JSランタイム(Deno,Bun)の使い方というDenoとBunの使い方について解説したドキュメントが公開されています: