libpolatskのRubyインターフェース

目的

  • 管理コンソールを作りたい→Rubyインターフェースつくってirbをコンソールにした方が柔軟性高い
  • Ruby Extension一度書いてみたかった
  • デバッグを容易に。プロトタイプをRubyで設計とか
  • libpolatskをWeb系の用途にも使えないかな?

実装にあたって

そもそもどういう形態を取ろうか?

  • Pure Rubyプロトコル実装
    • 可搬性ありそう
    • C++実装と同期取るのが大変
  • C++側実装を基本的に全部つかってラッパー化
    • 挫折した。orz
    • Rubyは非マルチスレッドセーフ&ネイティブスレッドには基本的には非対応
  • UDP通信関連lib、タスクディスパッチャ(負荷分散実装予定地)はC++、libpolatsk_tasksys部はRubyで再実装
    • 現状での妥協案。