Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MoQTフルスクラッチ実装
Search
Hakkadaikon
August 27, 2026
Programming
46
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MoQTフルスクラッチ実装
2026/8/27 社内LTで発表した内容
Hakkadaikon
August 27, 2026
More Decks by Hakkadaikon
See All by Hakkadaikon
Just do it ! で 走り抜けてきたけど ちょっと立ち止まってみた
hakkadaikon
0
910
自作WebSocket (RFC6455)
hakkadaikon
0
150
routstrについて
hakkadaikon
0
170
Nostr x BTC
hakkadaikon
0
74
Blueskyのプラグインを作ってみた
hakkadaikon
1
860
PHP x Nostr
hakkadaikon
0
180
Emacs x Nostr
hakkadaikon
2
430
My Introduction To Nostr
hakkadaikon
0
270
Nostr × C#
hakkadaikon
0
270
Other Decks in Programming
See All in Programming
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
400
Deep dive into the select statement (GopherCon UK)
jespino
0
120
信頼性の目標を誰も求めてない
shubox
0
130
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
3.1k
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
2
440
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
430
Press start. Python's next generation.
willingc
PRO
3
210
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
2k
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
230
リアルな遅延を測る仕様
kota_yata
1
130
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
360
Introducing Stack Pull Request in GitHub
kkamegawa
0
110
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
42k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Accessibility Awareness
sabderemane
1
180
Become a Pro
speakerdeck
PRO
31
6.2k
Writing Fast Ruby
sferik
630
63k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
The Pragmatic Product Professional
lauravandoore
37
7.4k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
520
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Transcript
MoQT フルスクラッチ実装 発火大根
自己紹介 1 発火大根 出身: 岡山県倉敷市
今日のテーマ claudeで作ったwebサーバー / SDKを紹介します https://github.com/Hakkadaikon/wired マニアックな話をして終わります
以前の発表 以前の開発定例で 自作WebSocket の 発表をしました (2025/12/18)
開発当時 (自作 WebSocket) - この「自作WebSocket」を作ったのが2025年2月ごろ この時はほとんどAIを使わず、手で実装していた
あれから - claude や codex など、コードを書くモデルの性能が飛躍的に進化 もっと高度なネットワークのSDKを作れるのではないか
あれから そうだ もっと難しそう & 挑戦している人が少なそうなものを作ろう
自作範囲 (WebSocketの時) C言語で直接システムコールを呼 び出し、青い部分は自作 TCPの部分は自作せず、カーネル の機能を使用 暗号化 (SSL/TLS)の対応は無し
今回自作したもの MoQT 実装 (Media over QUIC Transport)
MoQT (Media over QUIC Transport)とは? ライブ配信・双方向音声通話などに使えるメディア配信プロトコル
MoQT (Media over QUIC Transport)の特徴 他の配信プロトコルと比較 (配信遅延と大規模配信のいいとこ取り) プロトコル 配信遅延 大規模配信
主な用途 MoQT 数百ms〜1秒 高い インタラクティブ配信、ライブス ポーツ、クラウドゲーム (MoQリレー対応の基盤が必要) WebRTC 0.5秒未満 中〜高 (SFU/専用CDNが必要・コスト高) LL-HLS 2-5秒 非常に高い (既存HTTP CDNをそのまま利用) HLS / DASH 6-30秒 非常に高い (既存HTTP CDNをそのまま利用) ビデオ会議、双方向通話、低遅延 1対多配信 低遅延ライブ配信(スポーツ、オー クション) VOD(ビデオオンデマンド )、 大規模ライブ配信
MoQT (Media over QUIC Transport)の特徴 330都市以上の全ての Cloudflareサーバーが MoQTをサポート (2025/8/22) https://blog.cloudflare.com/ja-jp/moq/
MoQT (Media over QUIC Transport)の特徴 ネットワークレイヤー MoQT WebTransport HTTP/3 QUIC
(+ TLS1.3) UDP IP ハンドシェイク 確立後データ通信 ネイティブアプリ
一般的な実装範囲 - 大体QUICから上 TLS1.3は別の既存のOSSを使用 (opensslなど) UDPやIPはカーネルの機能を使用 MoQT WebTransport HTTP/3 QUIC
(+ TLS1.3) UDP IP
今回作ったOSSの実装範囲 IPから上、全部。 MoQT WebTransport HTTP/3 QUIC (+ TLS1.3) UDP IP
今回作ったOSSの実装範囲 - C言語製、libc依存なし (x86-64に特化)、シングルバイナリで起動 - 約360KBのシングルバイナリ、scratchコンテナで動作する - 他の実装のバイナリは6-8MB程度 - カーネルのネットワークスタックを迂回、自分でIPレイヤーから構築
- AF_XDPと呼ばれる技術を使用 - カーネル内部のVM (eBPF)でパケットをポーリングで刈り込む - カーネルのUDPを使うモードもアリ
実装した仕様 種類 件数 RFC 40 FIPS (NIST) 4 SP (NIST)
1 IETF draft 2 合計: 47種類の仕様を実装
実装方法 - ほぼ全てclaude - RFCなど、必要な仕様をかき集める - 実装した仕様とテストコードをセットにした台帳を用意、TDDで実装 - 基本はbypass モードで放置実装
- 1日30分 - 1時間ほどかけて、指示を与え直したりテスト確認したり これを2ヶ月続けました。(現在、2050 commit over)
テスト (e2e) - quic-interop-runner (OSS) をforkして使用 様々なサーバー x クライアントと掛け合わせでテストをしてくれる QUICとWebTransportに対応
https://interop.seemann.io/quic
テスト (e2e) クライアント別に 22ケースのテストを実施 著名な実装 (nginx) 等と比較しても、遜色ない程度にテストが通るように 今回作った実装 (quicのテスト) nginx
(quicのテスト)
速度 一部のテストでは、他の実装を大きく上回る結果に (VPSでテスト) 10MB転送テスト ループバックでリクエストを与え続ける
苦労したところ - bypassモードで放置実装・テストがしにくい所は手動でテストした - ループバックではなく、ネットワーク外から実行するテスト - AF_XDP - カーネル側の制御を行うためsudoが必要 -
RFC等の仕様からトップダウンでTDDしたはずだが、 e2eで失敗しまくる - 実際のクライアントと対向させないと分からない部分もある
実際のサンプル 通話するためのクライアントを作成、VPSでサーバーを動作させて接続 -> 実際にチャット・通話が出来た
Q. ところで... - 機能も他の実装と遜色ない程度に出来てきている 速度もそれなりに出ている 他の実装より圧倒的に優れている部分もある (バイナリサイズなど) では、もう「実用的」なのか?
A. 答え 現段階では、全く実用的ではない。(実務では使えない)
なぜ? - 運用実績 セキュリティ
なぜ? - openssl - - 1999 - 2026年 (27年間) で280件以上のCVEあり
https://openssl-library.org/news/secjson/index.html nginx - 2009 - 2026年(17年間)で45件程度のCVEあり https://nginx.org/en/security_advisories.html 過去の様々な運用の中で、これだけの脆弱性を乗り越えてきている
なぜ? 文字通りフルスクラッチの実装なので まだ見ぬ脆弱性や不具合が大量にあると予想
ただ... 強みとして、 - 依存がほぼない - 他のOSSに縛られない - 脆弱性の修正には、完全に自分の意思とタイミングで反映可能 - 別のWebサーバーがCVE発行
-> AIが検知 -> 自動で水平展開チェック -> 反映 の流れを作れたら強いかも? 将来的に、今回作った実装の方がセキュアになる可能性も?
今後 引き続きAIによる放置実装で - パフォーマンス改善 脆弱性対応 ドキュメント改善 映像配信のサンプル (音声とチャットは出来たが映像配信はまだ試せていない) などを行っていく予定
ありがとうございました! EDムービー : 私のダンス動画 (AI) 動画: Seedance 2.5 / 人物画:
実写をgrokでデフォルメ / 背景: フリー素材 / ダンス: 別動画 (フリー素材 )