「RubyによるQUICプロトコルの他言語からの移植ならびに独自実装の作成」 メンター報告書 # プロジェクト概要 本プロジェクトは、Ruby向けに、ほとんどのコードをRubyで記述したQUICプロト コルを実装するものである。実装には次の2つの段階を想定していた。 (1) PythonでのQUIC実装であるaioquicのRubyへの移植 (2) aioquic移植によって得られた知見を基にしたRuby-ishな独自実装作成 # 計画の達成状況 プロジェクトでは、まずは (1) を実現するため、Python での実装を読み込んで 理解し、それを Ruby に移植する、という手順で進めた。その進捗は、成果報告 書にあるとおり「QUICプロトコルの根幹を成すPacketやTLSなどについてのテス トケースを大部分において通過しており、ローカルホストに閉じた場合であれば QUICでの通信は部分的に可能な状態」まで実装した。 (2) については、(1) が最後まで終わらなかったということであり、進められて いなかった。(1) だけでも大きな仕事であり、問題ないと思われる。QUIC プロ トコルについての理解が進んだと思われるため、今後に大いに期待したい。 # メンターとして果たした役割 毎週もしくは隔週のオンラインミーティングを行い、進捗を確認した。その際、 Grantプロジェクトのマイルストーンについて都度確認した。また、QUICプロト コルについてのメンターの疑問について議論をすることでプロトコルについての 理解を深めた。 # まとめ 本プロジェクトでは、QUICプロトコルのRuby実装を、Pythonでの実装である aioquicの移植という方法で一部実現した。 QUICプロトコルを実装するには、既存の外部ライブラリのバインディングを作る というのが定石だと思うが、多くの部分をRubyで実装するというのはチャレンジ ングな課題であり、外部ライブラリへの依存がないという利点は、応用範囲を広 げる可能性を感じさせる。今後は、よりRubyらしいインターフェースをもつ独自 のQUICプロトコル実装を実現することを目指しているということで、多いに期待 したい。