Ruby30周年イベントでLTをしました&鹿児島Ruby会議で登壇します
まとめ
- Ruby 30周年イベントでLTをしました
- 鹿児島Ruby会議02で「QUICをRubyの世界に持ってくる活動をしています」という発表をします
本当は30周年LTをする前にこの記事を公開したかったのですが、色々あって今になりました。
最近やっていること
昨年末から、Rubyアソシエーション開発助成の対象として採択され、QUICプロトコルをRubyにて実装する活動をしています。具体的には、PythonによるQUIC実装 aioquic をRubyに移植するということを行っています。
“移植”とはいっても、aioquic の完全な移植を作成するつもりはなく、あくまでもこれはQUICの実装の感じを掴むために行なっているものです。現状、QUICの実装として主要な部分と言える、以下の移植を終わらせています。
- aioquic/_buffer.c → raioquic/buffer.rb
- aioquic/tls.py → raioquic/tls.rb
- aioquic/quic/configuration.py → raioquic/quic/configuration.rb
- aioquic/quic/crypto.py → raioquic/quic/crypto.rb
- aioquic/quic/events.py → raioquic/quic/event.rb
- aioquic/quic/packet.py → raioquic/quic/packet.rb
- aioquic/quic/packet_builder.py → raioquic/quic/packet_builder.rb
- aioquic/quic/rangeset.py → raioquic/quic/rangeset.rb
- aioquic/quic/recovery.py → raioquic/quic/recovery.rb
- aioquic/quic/stream.py → raioquic/quic/stream.rb
また現時点では aioquic/quic/connection.py の移植作業を行っています1。冒頭の画像は、GitHubにpushしていないものも含めた現時点での行数をtokeiによって集計したものです。
Ruby 30周年LTで話したこと
Ruby 30周年記念イベントにおいて、これら数千行のPythonのコードを読み、Rubyへと書き換えていくなかで、RubyにもPythonのこういう機能があれば便利だと思う、という意図のLightling Talkを行いました。
鹿児島で話すこと
鹿児島では、QUICの簡単な説明と、発表時点での実装においてどこまでのことが可能なのか実際に動かして説明し、今後の展望について話そうと考えています。
-
これの移植がうまくいかず、テストケースが通ったらこのブログを書こうと考えていましたが、結局まだ完走できていません。 ↩
2023年02月28日