LoginSignup
12
6

WebTransportでもまとめがしたい!

Last updated at Posted at 2021-12-26

お役立ちリンク集です

雑で古いものも多いですが、情報量が多いのでこっちに情報をまとめていきます。

WebTransportは現在ChromeとFirefoxで使用できます。
safariは実装するよ、という意思表示をしていますがいつになるかは不明です。
また、仕様は確定していないので変わる可能性もあります。

(もっと網羅されている時雨堂さんのリンク集はこちら)

WebTransportって何?

WebTransportってそもそも何?という方はまずはこの辺りが参考になるかと思います。

ブラウザ対応状況。

ブラウザ 状況
Chrome 97でリリース
Firefox 114にて対応 (WebCodecsはまだですか?)
Safari 2023年4月に対応するよ、という意思表明はありました。
Edge 確認してないです

これまでの道のり

  • 2017ごろ? : クラウドゲーミングにWebRTC使いづらいから新しいプロトコル作ろうよ、という話が出る
  • 2020年末 : QuickTransportが触れるようになり、WebTransportの紹介記事が話題に。
  • 2021年 : WebTrasnportベータ版
  • 2021年11月 : Chrome97にてWebTransportがGAされる。
  • 2022年初夏 : FacebookやTwitchがメディア配信向けのプロトタイプを公開(Warpなど)
  • 2023年4月 : WebkitがWebTransport対応する意思を表明
  • 2023年6月 : Firefox114にてWebTransport対応

Youtube

ちょっと古いです

WebTransport前夜

今までの経緯と現在の流れはこちら。

RFC・ドラフト

仕様はここを読むべし。
WebTransport -> HTTP/3 -> QUIC という依存関係です。

参考記事

  • http3-note : WEB + DB PRESS 2021年6月号に記事を書かれていた方のHTTP/3とQUICについての解説がGithubから読めます。多分雑誌の方が最新です。

WebTransport サンプル

WebTransportにはサーバーとクライアントが必要です。
ストリーム(単方向・双方向)とデータグラムという通信方式があります。

対応サーバー

おそらくきちんと対応できているのは、公式サンプルでも使われているPythonのライブラリだけかと思います。
サーバーの処理を書く必要があるので色々な言語への対応が待たれるところです。

ライブラリ 言語 備考
aioquic Python 公式サンプルでも利用されている
neqo Rust mozilla製。streamだけ対応しており、datagramとネゴシエーション周りはプルリク中。色々いじればとりあえず動いた。
quic-go Go quic-goを使いWebTransportを実装することが可能 webtransport-goを参照
2022年末の時点では輻輳制御アルゴリズムがrenoであるため、1Gbpsあたりで性能が出なくなる感じだった。
QUIC Implementations QUIC実装一覧 HTTP/3に対応しているライブラリの中にWebTransportに対応するものが出てくるはず。
WTransport Rust quinnベースのもの、2023年12月現在メンテされている
webtransport-rs Rust quinnベース、Twitchの中の人作成。Rustっぽくて好きだがデータグラム未対応

その他

WebCodecs

動画をエンコードしたりデコードするために使います。
WebTransportと組み合わせて使うと思います。
Chromeは対応していて、Firefoxはポジティブで実装のチケットはある模様。safariもTPでは実験的に実装されている模様。

今まで書いた記事

所々勘違いしている気がしますので来年になったらまとめ直そうかと思います。

12
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
6