濃縮還元オレンジニュース

Facebook、オープンソースのノンブロッキングなWebフレームワーク「Tornado」公開

2009年9月11日、SNSサービスを運営するFacebookは、Pythonで書かれたWebフレームワーク「Tornado」をオープンソースで公開しました。Tornadoは、Facebookによって買収されたフィードアグリゲーションサービスFriendFeedにて使われているWebフレームワークをベースに、依存関係を減らすようリファクタリングしたものです。

Tornadoの大きな特徴として、FriendFeedのようなリアルタイム性、大量接続の要件に応えるべく、ノンブロッキングI/O、epollを用いたアプリケーションを作成できます。ほかにもGoogle App Engine対応、サードパーティ認証、CSRF(Cross-Site Request Forgeries)対策など多くの機能を実現しています。

Tornadoを動作させるにはPython 2.5以上、PycURLおよびsimplejsonのようなJSONパーサライブラリが必要となります(なお、Mac OS X Snow LeopardにてPycURLのインストールに失敗する際は、export ARCHFLAGS="-arch x86_64"を実行して再度インストールを試みてください⁠⁠。Tornadoには組み込みのHTTPサーバも用意されているため、すぐに始めることができます。

最もシンプルなアプリケーションは次のようになります(import文、HTTPサーバ部分を除く⁠⁠。

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

WebブラウザにてルートのURLパスでアクセスすると、MainHandlerのgetメソッドが呼ばれ「Hello, world」を出力します。

Google App Engineを試したことがある人は、webappフレームワークに似ているのでコツをつかむのが早いかもしれません。

ドキュメントの日本語翻訳が有志によって公開されているので、気軽に始められることができるでしょう。

>

URLhttp://www.tornadoweb.org

おすすめ記事

記事・ニュース一覧