Rabbit Slide Show

RubyKaigi 2026 followup

2026-09-05

Description

https://rhc.connpass.com/event/392503/

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: 13

ioquatix and me

Page: 14

Joined socketry org

Page: 15

今後の展望
Pure Ruby実装の設計をやりなおし中
TLSのあたりで非効率なことをしていた
設計はAIに手伝ってもらっている、実装は……?
Ruby本体(openssl gem)へのQUICを……?
https://github.com/ruby/openssl/pull/1008

Other slides

CNDF2023 CNDF2023
2023-08-03
ruby30th-lt ruby30th-lt
2023-02-25