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フレームワークに似ているのでコツをつかむのが早いかもしれません。
ドキュメントの日本語翻訳が有志によって公開されているので、気軽に始められることができるでしょう。
>
URL:http://www.tornadoweb.org