- Catalyst (software)
Original author(s) Sebastian Riedel Stable release 5.90001 / August 15, 2011 Written in Perl Type Web application framework License PAL and GPL Website catalystframework.org
Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by such frameworks as Ruby on Rails, Maypole, and Spring.
A web application developer would use Catalyst to deal with code common to all web applications: it provides interfaces to web servers and receiving page requests, dispatching these into developer-written code to process and return the requests, and provides a standardised interface for data models, authentication, session management and other common web application elements.
All of these elements are implemented as plugins to a set of common interfaces, allowing the developer to change the specific method used (e.g. a session storing in shared memory versus as a database table, or using FastCGI versus operating as an within Apache's mod_perl) by changing the configuration of Catalyst to use a different plugin without altering the application code.
Catalyst is primarily distributed through the CPAN, which is the official distribution channel for Perl libraries and applications.
Catalyst is based on a "don't repeat yourself" (DRY) principle, which means that definitions should only have to be made once.
Catalyst can be used with automatic class loading from the database through one of the many loader modules, thus requiring no code for the database layer. But, if you require the flexibility of manually doing everything, it's also an option. Another guiding principle of Catalyst is flexibility.
Catalyst promotes the re-use of existing Perl modules that already handle common web application concerns well.
- The Model part is handled through DBIx::Class, Plucene, Net::LDAP and other model classes.
- The View layer is usually handled by Template Toolkit, Mason, or HTML::Template, among others.
- The Controller layer is of course written by each application author. Large chunks of Controller functionality can usually be deferred to one of the many Catalyst plugins (e.g., Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery, etc.).
- Finally, Catalyst offers a set of helpers to simplify flow control and mapping URLs to controller methods.
Web server support
For development and testing, Catalyst has a built-in simple HTTP server. For production use, Apache, lighttpd or Nginx with FastCGI or mod_perl support is recommended, but any web server with CGI or FastCGI support will work. On Apache, mod_perl can help with performance considerably, though its use might be an issue because it can be unsafe to share multiple applications under mod_perl.
Since early 2008, Catalyst applications can also be deployed using the HTTP::Prefork engine which provides for the deployment of high performance Catalyst applications without a separate web server.
Catalyst can run using any database supported by Perl's DBI (this means almost anything, even a CSV file), but a proper RDBMS or ODBMS is recommended. The database access is entirely abstracted from the programmer's point of view and Catalyst, through one of its model classes, handles access to all databases automatically – though, if needed, using direct SQL queries is possible. This enables database-neutrality, application portability over different database systems, and usability of pre-existing databases for Catalyst application development as much as possible, though due to different feature sets of the RDBMSes, it is not completely guaranteed by the framework alone. Several different RDBMS systems are supported, including MySQL, PostgreSQL, SQLite, IBM DB2, Oracle and Microsoft SQL Server. For ODBMSes, there is explicit support for KiokuDB via Catalyst::Model::KiokuDB. The Model abstraction allows databases of any nature to be accessed via Catalyst::Model::Adaptor.
Many Catalyst-based projects use DBIx::Class as the ORM layer, which provides further abstraction of SQL queries, using a resultset-based API with transparent support for arbitrary joins and other features.
- Diment, Kieren. The Definitive Guide to Catalyst. Apress. ISBN 978-1-4302-2365-8. http://www.apress.com/book/view/9781430223658. Retrieved 2009-09-09.
- ^ Catalyst Changes file
- ^ "Catalyst Framework - Contributors". Ohloh. https://www.ohloh.net/p/catalyst/contributors. Retrieved 2011-06-06.
- ^ large selection of plugins
- ^ HTTP::Prefork engine
- ^ Catalyst::Model::KiokuDB
- ^ Catalyst::Model::Adaptor
- ^ "Biggest porn site on the web YouPorn powered by Perl/Catalyst (top 50 in alexa)". reddit. http://www.reddit.com/r/programming/comments/8cvlp/biggest_porn_site_on_the_web_youporn_powered_by/.
- ^ ""Catalyst/DBIC/eCommerce Developer job" posting". 2011-05-08. Archived from the original on 2011-06-06. http://www.webcitation.org/5zEhApxpY. Retrieved 2011-06-06.
- ^ Diment, Kieren; Trout, Matt S (2009). "Catalyst Cookbook". The Definitive Guide to Catalyst. Apress. pp. 278–281. ISBN 978-1430223658. http://www.amazon.com/Definitive-Guide-Catalyst-Maintainable-Applications/dp/1430223650/.
Wikimedia Foundation. 2010.
Look at other dictionaries:
Catalyst (disambiguation) — Catalyst may refer to: Chemistry * Catalyst in chemistry * Catalyst (museum), a hands on science centre and chemical industry museum in Widnes in Cheshire in England [http://www.catalyst.org.uk/index.htm] Music, television and literature *… … Wikipedia
Catalyst switch — Catalyst is the brand name for a variety of network switches sold by Cisco Systems. While commonly associated with Ethernet switches, a number of different interfaces have been available throughout the history of the brand. Cisco acquired several … Wikipedia
Catalyst (Logiciel) — Pour l’article homonyme, voir Catalyst . Catalyst est un framework open source écrit en Perl, qui applique strictement le modèle de conception Modèle Vue Contrôleur (MVC), et qui supporte certains modèles expérimentaux de conception… … Wikipédia en Français
Catalyst Web Framework — Maintainer Catalyst Developers Aktuelle Version 5.80031 (31. Januar 2011) Programmiersprache Perl … Deutsch Wikipedia
Catalyst (framework) — Saltar a navegación, búsqueda 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… … Wikipedia Español
Catalyst Code — infobox Book | name = The Catalyst Code: The Strategies Behind the World s Most Dynamic Companies orig title = translator = author = David S. Evans Richard L. Schmalensee cover artist = country = United States language = English series = subject … Wikipedia
Catalyst 6500 — The Catalyst 6500 is a modular chassis switch manufactured by Cisco Systems since 1999, capable of delivering speeds of up to 400 million packets per second [http://www.cisco.com/en/US/products/hw/modules/ps2797/ps5138/index.html Cisco Catalyst… … Wikipedia
ATI Catalyst — Infobox Software name = ATI Catalyst Control Center caption = ATI Catalyst Control Center running on Windows XP developer = ATI Technologies/Advanced Micro Devices released = initial release|2004|1|19Ver. 4.1 (Pkg. ver. 7.97) [… … Wikipedia
Cisco Catalyst — Catalyst is the brand name for a variety of network switches sold by Cisco Systems. While commonly associated with Ethernet switches, a number of different interfaces have been available throughout the history of the brand. Cisco acquired several … Wikipedia
Adobe Flash Catalyst — Basisdaten Entwickler A … Deutsch Wikipedia