Text
Page: 1
QUIC、HTTP/3について
unasuke
RubyKaigi 2026 follow up
2026-09-05
Page: 2
自己紹介
Name: うなすけ
Work: フリーランス
Kaigi on Rails 2026 organizer (10/16-17)
GitHub https://github.com/unasuke
Fediverse https://mstdn.unasuke.com/@unasuke
X https://x.com/yu_suke1994
https://unasuke.com
Page: 3
もくじ
2025から2026にやっていたこと
つくったもの
関わったもの
今後の展望
Page: 4
2025 → 2026
QUIC実装月報 2025年3月 | うなすけとあれこれ
QUIC実装月報 2025年4月 | うなすけとあれこれ
QUIC実装月報 2025年5月 | うなすけとあれこれ
QUIC実装月報 2025年6月 | うなすけとあれこれ
QUIC実装月報 2025年7月 | うなすけとあれこれ
QUIC実装月報 2025年8月 | うなすけとあれこれ
QUIC実装月報 2025年10月 | うなすけとあれこれ
QUIC実装月報 2025年12月 | うなすけとあれこれ
Page: 5
2025 → 2026
QUIC実装月報 2026年1月 | うなすけとあれこれ
QUIC実装月報 2026年2月 | うなすけとあれこれ
QUIC実装月報 2026年4月 | うなすけとあれこれ
QUIC実装月報 2026年5月 | うなすけとあれこれ
QUIC実装月報 2026年6月 | うなすけとあれこれ
QUIC実装月報 2026年8月 | うなすけとあれこれ
進捗を書いています!
Page: 6
つくったもの
https://github.com/unasuke/nghttp3-ruby
https://github.com/unasuke/quic-ruby
https://github.com/unasuke/carbuncle
それぞれについて説明します
Page: 7
unasuke/nghttp3-ruby
https://github.com/unasuke/nghttp3-ruby
https://github.com/ngtcp2/nghttp3 のRuby binding gem。これ
単体ではQUICプロトコルによる通信はできない。
OpenSSLに実装されているAPIをRuby側に露出しないと使えないので、
このgemがあったとして今は何もできない。
Page: 8
unasuke/quic-ruby
https://github.com/unasuke/quic-ruby
https://github.com/ngtcp2/ngtcp2 とLibreSSLのRuby binding
gem。 examples/ 以下に実際の動作例を置いてある。
LibreSSLを暗号化バックエンドとして使用しているのはngtcp2が
OpenSSLをbackendに使用するのをexperimentalとしているため。
Page: 9
unasuke/carbuncle
https://github.com/unasuke/carbuncle
これはQUICの利用側。家の中のRaspberry Piで動かしている DNS full
service resolver。Pi-HoleのWeb UIがないもの、というのが伝わりやす
い?
DoH3、DoT、DoQに対応することで、自分のQUIC, HTTP/3、TLSの実装
が実運用に耐えるかどうかを検証するために開発している。完全に自分用。
現在はDoTには対応できている。家の中に置いてもDoH、DoQのクライアン
トになるものなのかなぁ……
Page: 10
関わったもの
https://github.com/socketry/protocol-quic
https://github.com/socketry/protocol-http3
Page: 11
socketry/protocol-quic
https://github.com/socketry/protocol-quic
ioquatix氏によるQUIC実装。QUICレイヤはngtcp2を利用しており、
Asyncエコシステムで使いやすいように色々やっている。
手元でbuildに失敗する問題の修正を取り込んでもらった。
https://github.com/socketry/protocol-quic/pull/3
Page: 12
socketry/protocol-http3
https://github.com/socketry/protocol-http3
ioquatix氏によるHTTP/3実装。QUICレイヤはngtcp2を、HTTP/3レイ
ヤはnghttp3を利用しており、Asyncエコシステムで使いやすいように色々
やっている。
手元で(以下略)
https://github.com/socketry/protocol-http3/pull/1
Page: 14
Joined socketry org
Page: 15
今後の展望
Pure Ruby実装の設計をやりなおし中
TLSのあたりで非効率なことをしていた
設計はAIに手伝ってもらっている、実装は……?
Ruby本体(openssl gem)へのQUICを……?
https://github.com/ruby/openssl/pull/1008