Catalyst (ソフトウェア)

Catalyst （かたりすと）は、Perlで書かれたオープンソースのウェブアプリケーションフレームワークで、Model View Controller (MVC)のアーキテクチャを持ち、実験的なウェブのパターンを数多く持っている。Ruby on Rails、 Maypole、 Springといったフレームワークに強い影響を受けている。
Catalystは、主に、Perlのライブラリやアプリケーションの公式配布元であるCPANを通じて配布される。
哲学.
Catalystは、定義は一度のみ行われるべきとする"Don't Repeat Yourself" (DRY)原則に基づいている。
Catalystは、多くのモジュールのうちからひとつだけを使って、データベースからクラスを引っ張り出すことによって利用される。従って、データベース層に関するコードは必要とされない。しかし、何かに付け融通を効かせようとするなら、それもオプションで利用できる。Catalystのもうひとつの原則は、自在さである。
Catalystは、既にウェブアプリケーションを操作するために使われている既存のPerlモジュールの再利用を促す。
Catalystには、多くのプラグインがある。例えば、AjaxやRIAのためのJavaScriptの生成には、Catalyst::Plugin::Prototypeモジュールが使われる（prototypeはAjaxフレームワークである）。
Webサーバのサポート.
開発やテストのために、Catalystは、組み込みの簡易HTTPサーバがある。製品の利用についてはApacheか、FastCGI付きのlighttpd、 mod perlサポートが推奨されるが、CGIやFastCGIをサポートしたWebサーバなら動作する。Apache上では、mod_perlでの利用が、相当のパフォーマンスの助けになるが、複数のアプリケーションでmod_perlを共有することで不安定になるため、問題もある。
データベースサポート.
Catalystは、PerlのDBIがサポートするデータベースなら（つまりほぼ全て、CSVファイルでさえも）どれでも動作するが、関係データベース管理システム (RDBMS) が推奨されている。データベースアクセスは、モジュールのひとつを通し、全てのデータベースへのアクセスを自動的に操作することで、プログラマーやCatalystからは、完全に抽象化されている。もし必要なら、ダイレクトにSQLのクエリを利用することもできる。これは、異なるデータベース間でも移植性のある、データベースにおいて中立的なアプリケーションが利用でき、Catalystアプリケーション開発において、可能な限り、既存のデータベースのユーザビリティを保つことが出来ることを意味する。ただし、RDBMS間で機能が異なる場合には、フレームワーク単独では、完全に機能を保証できない。MySQL、PostgreSQL、SQLite、IBM DB2、Oracle、Microsoft SQL Serverといった複数のデータベースをサポートしている。（オブジェクト関係マッピング）