Hub情報局@IT編集部の西村賢がRuby/Rails関連を中心に書いています。2010/12/21Node.jsが使っているのと同じイベントループ・ライブラリ「libev」を活用し、Sinatra風のDSLが使えるRuby向けフレームワーク「Cool.io」のバージョン1.0が12月14日に登場しました(GitHubのレポジトリ)。Cool.ioの開発自体は2007年12月に始まったRevという前身プロジェクトまでさかのぼります。途中で名称変更をしたんですね。I/O」ということでI/Oバウンドなサーバ処理に「いい感じ」という風にも取れますし、Coolioというアメリカ人のラッパーの名前にも通じていて、ちょっとRubyっぽい響き(Javaなどに比べてやんちゃ)で、良いネーミングだと思います。追記:Cool.ioはRevとは別プロジェクトでした。このコミットログをちらっと見て誤解しました。訂正してお詫びします。イベントハンドラを登録しておいて処理を継続し、実際にイベントが発生したときにコールバックで何らかの処理をする、というのはシングルスレッドでマウスやウィンドウオブジェクトを扱うクライアントサイドJavaScriptはごく普通のことでした。Webサーバでもこれと同様にイベント駆動にすることで、ロックが発生したり、ムダにプロセスやスレッドを生成しなくても多量の同時アクセスをさばける。それがイベントループを活用したNode.jsなどのフレームワーク。いうのが私の理解で、最近の注目トレンドの1つですよね。リアルタイム性の高い、つなぎっぱなし系プロトコルのComet(プロトコルではなくハックでしょうけど)やWebSocketでは、自然な実装という気がします(WebSocketの解説記事)。WebSocketの登場で一気に注目を浴びた感もあるイベントループ系の実装ですが、RubyだとEventMachineというのがありました。Cool.ioは、EventMachine同様のことが、今風のDSLで書けるのが嬉しい、ということでしょうか。サンプルコードは以下の通り。#{ADDR}:#{PORT}"cool.io.runSinatraのような衝撃には欠けますが、イベントループ系としてはちょっと要注目なのかもしれません。名前を記憶しておくコメント:西村賢@IT編集部の西村賢がRuby/Rails関連を中心にブログしています。書籍「誰でも身につく!暗算力」を読んでみた。未成年者略取ムチャか?男気か?部下も立て続けに。利用規約ITmediaはアイティメディア株式会社の登録商標です。