Catalyst es una estructura de código libre para aplicaciones web escrito en Perl. Soporta la arquitectura MVC, así como soporta algunos patrones web experimentales. Está altamente inspirado en Ruby on Rails, Maypole y Spring.
Catalyst promueve el re-utilizamiento de los módulos de Perl que ya soportan bien lo que requieren las páginas Web.
La forma en que Catalyst soporta la arquitectura MVC es la siguiente:
- La parte de Modelo (Model) es manejada por medio de DBIx::Class, Plucene, Net::LDAP u otras clases modelo.
- La parte de Vista (View) es usualmente manejada por Template Toolkit, Mason o HTML::Template.
- La parte de Control (Controller) es escrita por el autor, por supuesto. Grandes pedazos de funcionalidad usualmente se pueden conseguir con los plugins de Catalyst (ejemplo: Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery, etc.).
Catalyst provee ayudas para simplificar el control de flujo y mapeo de URLs para los métodos de Control.
Catalyst tiene una gran variedad de plugins.