TurboGearsは、
Pythonで記述された
Webアプリケーションフレームワークであり、その設計はモデル・ビュー・コントローラ(MVC)アーキテクチャに基づいています。このフレームワークは、
MochiKit、SQLObject、CherryPy、Kidといった様々な基盤コンポーネントの上に構築されており、
Pythonを用いたWebアプリケーション開発をより簡単かつメンテナンスしやすいものにすることを目的としています。
概要
TurboGearsは、2005年にKevin Dangoorによって、まだリリースされていないZesty Newsという製品の基盤フレームワークとして誕生しました。2008年2月時点では、メーリングリストに3,000人以上のメンバーを抱え、活発なコミュニティを形成しています。2006年にはPrentice Hallから書籍が出版され、多くのオープンソースおよびプロプライエタリのTurboGearsアプリケーションが実際に運用されています。2008年のPyConでは、TurboGears 2のプレビューリリースが期待されていました。
TurboGears の構成要素
TurboGearsは、以下の主要なコンポーネントで構成されています。
SQLObject: モデル層として機能し、データベースや多様な既存のデータベースサーバーとのインターフェースを可能にするデータバックエンドです。
Kid: ビュー層として使用されるXHTMLテンプレートエンジンです。すべてのテンプレートは有効なXHTMLまたはXMLファイルであり、検証や設計が容易なシンプルなXHTMLファイルとして扱えます。また、XML形式で
Pythonコードを埋め込む機能も提供します。
CherryPy: コントローラ層として動作し、テンプレートにデータを返すイベントハンドラを記述することでWebアプリケーションをプログラム可能にするミドルウェアです。同じデータをデータストリームとして
Ajax的に取得することも可能です。
MochiKit: TurboGearsに付属する
JavaScriptライブラリで、
JavaScriptプログラミングをより
Pythonのように扱えるようにします。データストリームを非同期に取得するインターフェースを提供し、主に
Ajax機能の実装に使用されます。
また、Kid以外のテンプレートエンジンもプラグインシステムを介して利用可能です。Cheetah、
Django、Genshi、Jinja用のプラグインが提供されており、同一アプリケーション内で複数のテンプレートエンジンを併用することも可能です。
TurboGears の特徴
2007年1月には、プロジェクトリーダーであったKevin Dangoorが引退し、現在ではAlberto Valverdeが後継者としてプロジェクトを率いています。
TurboGears 2.0の開発が進められており、このバージョンではSQLObjectがSQLAlchemyに、KidがGenshiに置き換えられる予定です。これらのコンポーネントはソフトウェアの他の部分と密接に結びついているため、特にデータベースのフロントエンドである「Catwalk」に関して、既存のコードベースの多くを書き直す必要がありました。
2007年6月には、TurboGearsコミュニティが、TurboGears APIを
Pylonsで使用されているコンポーネントとプロトコル上に移植する実験を開始しました。この動きから、将来的に二つのフレームワークが統合される可能性も示唆されています。
関連書籍
Ramm, M (2006年11月7日). Rapid Web Applications with TurboGears, Prentice Hall. ISBN 0132433885
参照
自由ソフトウェア
Pythonを使っている製品あるいはソフトウェアの一覧
外部リンク
公式ウェブサイト
TurboGears Blogs
TurboGears google group
TurboGears screencasts and related videos
TurboGears from start to finish