タグ

ブックマーク / qiita.com/namusyaka (2)

  • C++/Rubyで基数木をつかって高速なHTTPルーティングを実現する - Qiita

    はじめに 数年にわたり、PadrinoやGrapeといったWebアプリケーションフレームワークのルーティングを改善してきた自分が、今年の11月頃から、従来とは異なるアプローチでHTTPルーティングの高速化について検証したので、その結果について解説する。 なおこの記事では、その過程でC++で基数木を実装し、それを用いることにより、Rubyで高速なHTTPルーティングを実現した事例について、順を追って解説する。 tl;dr C++で基数木(Radix Tree)を表現するr2reeというライブラリを書いた。 r2reeのRuby向けバインディングであるr2ree-rubyを書いた。 r2ree-rubyを用いてRuby上でHTTPルーティングを行う pendragon-radixを書いた。 多分、Rack準拠のルーティングライブラリでは最速。 結果、Sinatraなどで用いられる正規表現+線形

    C++/Rubyで基数木をつかって高速なHTTPルーティングを実現する - Qiita
    aereal
    aereal 2016/12/01
  • Padrino Frameworkのルーターを開発した話 - Qiita

    正直この手の技術解説記事を書くのはあまり得意ではないので避けていたところがありますが、 自分以外の人にも深く理解してもらいツッコミを入れてもらえる環境にしておくことがリスクヘッジになるのではないかと考えたために書くことにしました。 ちなみに、このルーターgithubのmasterブランチには既に取り込まれています。 また、ここでの新しいルーターとは、pendragonを指すことにします。 なぜ新しいルーターなのか そもそもの発端はこのイシューで、http_routerをドロップして新しいルーターを開発しようという動きは私が開発に参加するより以前からあったようです。 大まかな理由は以前書いた「Padrino Frameworkの最新事情と今後について」にある通りですが、補足としていくつか説明します。 http_routerの仕組み http_routerは一つのルートを追加する毎に、100

    Padrino Frameworkのルーターを開発した話 - Qiita
    aereal
    aereal 2014/11/13
    おもしろい
  • 1