3 Catalyst::Manual::Plugins - Catalyst Plugins (and Components)
7 This section lists the some of the plugins and components that are
8 available to extend the runtime functionality of Catalyst. Most plugins
9 are not distributed with Catalyst but should be available from CPAN.
10 They typically require additional modules from CPAN.
12 This list may well be outdated by the time you read this and some
13 plugins may be deprecated or now part of core L<Catalyst>. Be sure
14 to check the Catalyst::Plugin namespace for additional plugins and consult
15 the mailing list ( L<http://dev.catalyst.perl.org/wiki/Support> ) for advice
16 on the current status or preferred use of your chosen plugin/framework.
20 =head2 L<Catalyst::Plugin::Account::AutoDiscovery>
22 Provides Account Auto-Discovery for Catalyst.
24 =head2 L<Catalyst::Plugin::Acme::Scramble>
26 Implements a potent meme about how easily we can read scrambled text if the
27 first and last letters remain constant. Operates on text/plain and
28 text/html served by your Catalyst application.
30 =head2 L<Catalyst::Plugin::Alarm>
32 =head2 L<Catalyst::Plugin::AtomPP>
34 Allows you to dispatch AtomPP methods.
36 =head2 L<Catalyst::Plugin::AtomServer>
38 A plugin that implements the necessary bits to make it easy to build an
39 Atom API server for any Catalyst-based application.
41 =head2 L<Catalyst::Plugin::Authentication>
43 An infrastructure plugin for the Catalyst authentication framework. Now the
44 recommended way to do any form of Authentication.
46 =head2 L<Catalyst::Plugin::Authentication::Credential::Atom>
48 L<Catalyst::Plugin::Authentication::Credential::Atom> is a plugin which
49 implements WSSE and Basic authentication for Catalyst applications using
50 L<Catalyst::Plugin::AtomServer>
52 =head2 L<Catalyst::Plugin::Authentication::Credential::CHAP>
54 =head2 L<Catalyst::Plugin::Authentication::Credential::Flickr>
56 Provides authentication via Flickr, using its API.
58 =head2 L<Catalyst::Plugin::Authentication::Credential::Hatena>
60 =head2 L<Catalyst::Plugin::Authentication::Credential::HTTP>
62 Implements HTTP Basic authentication for Catalyst.
64 =head2 L<Catalyst::Plugin::Authentication::Credential::JugemKey>
66 =head2 L<Catalyst::Plugin::Authentication::Credential::PAM>
68 =head2 L<Catalyst::Plugin::Authentication::Credential::Password>
70 Takes a username (or userid) and a password, and tries various methods of
71 comparing a password based on what the chosen store's user objects support.
72 Part of the Authentication Framework L<Catalyst::Plugin::Authentication>.
74 =head2 L<Catalyst::Plugin::Authentication::Credential::TypeKey>
76 Integrates L<Authen::TypeKey> with L<Catalyst::Plugin::Authentication>.
78 =head2 L<Catalyst::Plugin::Authentication::Store>
80 The core authentication store documentation.
82 =head2 L<Catalyst::Plugin::Authentication::Store::DBIC>
84 Does authentication and authorization against a L<DBIx::Class> or
87 =head2 L<Catalyst::Plugin::Authentication::Store::Htpasswd>
89 Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files for its
90 authentication storage.
92 =head2 L<Catalyst::Plugin::Authentication::Store::HTTP>
94 =head2 L<Catalyst::Plugin::Authentication::Store::LDAP>
96 Authenticates users using an LDAP server.
98 =head2 L<Catalyst::Plugin::Authentication::Store::Minimal>
100 Lets you create a very quick and dirty user database in your application's
101 config hash. Great for getting up and running quickly.
103 =head2 L<Catalyst::Plugin::Authentication::User::Hash>
105 An easy authentication user object based on hashes.
106 See L<Catalyst::Plugin::Authentication::Store::Minimal> for more info.
108 =head2 L<Catalyst::Plugin::Authorization::ACL>
110 This module provides Access Control List style path protection, with arbitrary
111 rules for L<Catalyst> applications. It operates only on the Catalyst private
112 namespace, at least at the moment.
114 =head2 L<Catalyst::Plugin::Authorization::Roles>
116 L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
117 for Catalyst based on L<Catalyst::Plugin::Authentication>.
119 =head2 L<Catalyst::Plugin::AutoSession>
121 =head2 L<Catalyst::Plugin::Browser>
123 Extends L<Catalyst::Request> by adding the capability of browser detection.
124 It returns an instance of L<HTTP::BrowserDetect>, which lets you get information
125 from the client's user agent.
127 =head2 Catalyst::Plugin::Cache::FastMmap, FileCache, BerkeleyDB, and Memcached
129 L<Catalyst::Plugin::Cache::FastMmap>,
130 L<Catalyst::Plugin::Cache::FileCache>,
131 L<Catalyst::Plugin::Cache::BerkeleyDB>, and
132 L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
133 enabling easy access to a shared cache.
135 =head2 L<Catalyst::Plugin::Captcha>
137 =head2 L<Catalyst::Plugin::CGI::Untaint>
139 =head2 L<Catalyst::Plugin::Charsets::Japanese>
141 =head2 L<Catalyst::Plugin::Compress::Bzip2>
143 =head2 L<Catalyst::Plugin::Compress::Deflate>
145 =head2 L<Catalyst::Plugin::Compress::Gzip>
147 =head2 L<Catalyst::Plugin::Compress::Zlib>
149 =head2 L<Catalyst::Plugin::ConfigLoader>
151 Provides a standard method for loading config files. Support
152 exists for various formats. See
153 L<Catalyst::Plugin::ConfigLoader::INI>,
154 L<Catalyst::Plugin::ConfigLoader::JSON>,
155 L<Catalyst::Plugin::ConfigLoader::Perl>,
156 L<Catalyst::Plugin::ConfigLoader::XML>, and
157 L<Catalyst::Plugin::ConfigLoader::YAML>
159 =head2 L<Catalyst::Plugin::ConfigurablePathTo>
161 =head2 L<Catalyst::Plugin::Continuation>
163 =head2 L<Catalyst::Plugin::DateTime>
165 =head2 L<Catalyst::Plugin::DefaultEnd>
167 Creates a sane, standard end method for your application.
169 =head2 L<Catalyst::Plugin::Devel::InPageLogs>
171 =head2 L<Catalyst::Plugin::Devel::InPageLogs::Log>
173 =head2 L<Catalyst::Plugin::Dojo>
175 =head2 L<Catalyst::Plugin::Dumper>
177 =head2 L<Catalyst::Plugin::Email>
179 Sends email with L<Email::Send> and L<Email::MIME::Creator>.
181 =head2 L<Catalyst::Plugin::Email::Japanese>
183 =head2 L<Catalyst::Plugin::Email::Page>
185 =head2 L<Catalyst::Plugin::EmailValid>
187 =head2 L<Catalyst::Plugin::FillInForm>
189 A plugin based on C<HTML::FillInForm>, which describes itself as a module
190 to automatically insert data from a previous HTML form into the HTML input,
191 textarea, radio buttons, checkboxes, and select tags. C<HTML::FillInForm>
192 is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
193 the values into the form tags.
195 =head2 L<Catalyst::Plugin::Flavour>
197 =head2 L<Catalyst::Plugin::FormValidator>
199 A form validator plugin that uses L<Data::FormValidator> to validate and
200 set up form data from your request parameters. It's a quite thin wrapper
201 around that module, so most of the relevant information can be found there.
203 =head2 L<Catalyst::Plugin::FormValidator::Simple>
205 =head2 L<Catalyst::Plugin::Geography>
207 Allows you to retrieve various kinds of geographical information. You can
208 retrieve the country or code from the current user, from a given IP
209 address, or from a given hostname.
211 =head2 L<Catalyst::Plugin::Geography::Implementation>
213 =head2 L<Catalyst::Plugin::HashedCookies>
215 =head2 L<Catalyst::Plugin::HTML::Scrubber>
217 =head2 L<Catalyst::Plugin::HTML::Widget>
219 =head2 L<Catalyst::Plugin::I18N>
221 An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
222 and Maketext classes under your application's I18N namespace.
224 =head2 L<Catalyst::Plugin::JSONRPC>
226 =head2 L<Catalyst::Plugin::Markdown>
228 =head2 L<Catalyst::Plugin::Message>
230 =head2 L<Catalyst::Plugin::MobileAgent>
232 =head2 L<Catalyst::Plugin::Observe>
234 Provides the ability to register AOP-like callbacks to specific Engine
235 events. Subclasses L<Class::Publisher>.
237 =head2 L<Catalyst::Plugin::OrderedParams>
239 Adjusts the way that parameters operate, causing them to appear in the same
240 order they were submitted by the browser. This can be useful for creating
241 things such as email forms.
243 =head2 L<Catalyst::Plugin::PageCache>
245 Helps improve the performance of slow or frequently accessed pages by
246 caching the entire output of your page. Subsequent requests to the page
247 will receive the page very quickly from cache.
249 =head2 L<Catalyst::Plugin::Params::Nested>
251 =head2 L<Catalyst::Plugin::Params::Nested::Expander>
253 =head2 L<Catalyst::Plugin::Pluggable>
255 A plugin for pluggable Catalyst applications.
257 =head2 L<Catalyst::Plugin::Prototype>
259 A plugin for the Prototype JavaScript library. This Plugin allows you to
260 easily implement AJAX functionality without actually knowing Javascript.
262 =head2 L<Catalyst::Plugin::Redirect>
264 =head2 L<Catalyst::Plugin::RequestToken>
266 =head2 L<Catalyst::Plugin::RequireSSL>
268 Use this if you would like to force visitors to access certain pages using
269 only SSL mode. An attempt to access the page in non-SSL mode will receive a
270 redirect into SSL mode. Useful for login pages, shopping carts, user
271 registration forms, and other sensitive data.
273 =head2 L<Catalyst::Plugin::Scheduler>
275 =head2 L<Catalyst::Plugin::Session>
277 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
278 include session handling in an application. You can choose from several
279 different backend storage methods and combine that with your choice of
280 client-side storage methods.
282 =head2 L<Catalyst::Plugin::Session::PerUser>
284 =head2 L<Catalyst::Plugin::Session::State>
286 =head2 L<Catalyst::Plugin::Session::State::Cookie>
288 =head2 L<Catalyst::Plugin::Session::State::URI>
290 =head2 L<Catalyst::Plugin::Session::Store>
292 =head2 L<Catalyst::Plugin::Session::Store::CDBI>
294 =head2 L<Catalyst::Plugin::Session::Store::DBI>
296 =head2 L<Catalyst::Plugin::Session::Store::DBIC>
298 =head2 L<Catalyst::Plugin::Session::Store::Dummy>
300 =head2 L<Catalyst::Plugin::Session::Store::FastMmap>
302 =head2 L<Catalyst::Plugin::Session::Store::File>
304 =head2 L<Catalyst::Plugin::Session::Store::Memcached>
306 =head2 L<Catalyst::Plugin::Session::Test::Store>
308 =head2 L<Catalyst::Plugin::Singleton>
310 =head2 L<Catalyst::Plugin::Snippets>
312 =head2 L<Catalyst::Plugin::SRU>
314 Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
315 and C<searchRetrieve>) from its own class.
317 =head2 L<Catalyst::Plugin::StackTrace>
319 =head2 L<Catalyst::Plugin::Static>
321 L<Catalyst::Plugin::Static> is a plugin to serve static files from
322 C<< $c->config->{root} >>. Intended chiefly for development
325 =head2 L<Catalyst::Plugin::Static::Simple>
327 Serves static files in your application without requiring a single line of
328 code. This plugin is now included in the core Catalyst distribution.
330 =head2 L<Catalyst::Plugin::SubRequest>
332 A plugin to allow subrequests to actions to be made within Catalyst. Nice
333 for portal software and such.
335 =head2 L<Catalyst::Plugin::SuperForm>
337 An interface to the L<HTML::SuperForm> module, enabling easy HTML form
340 =head2 L<Catalyst::Plugin::Textile>
342 A persistent Textile processor for Catalyst that uses C<Text::Textile>, a
343 Perl-based implementation of Dean Allen's Textile syntax. Textile is
344 shorthand for doing common formatting tasks (see L<http://textism.com>).
346 =head2 L<Catalyst::Plugin::Unicode>
348 Provides a Unicode-aware Catalyst. On request, it decodes all params from
349 UTF-8 octets into a sequence of logical characters. On response, it encodes
350 the body into UTF-8 octets.
352 =head2 L<Catalyst::Plugin::Unicode::Encoding>
354 =head2 L<Catalyst::Plugin::Upload::Basename>
356 =head2 L<Catalyst::Plugin::Upload::MD5>
358 =head2 L<Catalyst::Plugin::Upload::MIME>
360 =head2 L<Catalyst::Plugin::UploadProgress>
362 =head2 L<Catalyst::Plugin::XMLRPC>
364 Allows your Controller class to dispatch XMLRPC methods from its own class.
368 =head2 L<Catalyst::Controller::BindLex>
370 Lets you mark lexical variables with a C<Stashed> attribute, automatically
371 passing them to the stash.
375 =head2 L<Catalyst::Model::CDBI>
377 The C<Class::DBI> (CDBI) model class. It is built on top of
378 C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
379 sub-classes by scanning the underlying table schemas, setting up columns
382 =head2 L<Catalyst::Model::CDBI::Plain>
384 A neutral interface to the C<Class::DBI> module which does not attempt to
385 automate table setup. It allows the user to manually set up C<Class::DBI>
386 classes, either by doing so within the Catalyst model classes themselves,
387 or by inheriting from existing C<Class::DBI> classes.
389 =head2 L<Catalyst::Model::DBIC::Schema>
391 A L<DBIx::Class> model class that can use either an explicit
392 L<DBIx::Class::Schema> or one automatically loaded from your database via
393 L<DBIx::Class::Schema::Loader>.
395 =head2 L<Catalyst::Model::EVDB>
397 =head2 L<Catalyst::Model::File>
399 =head2 L<Catalyst::Model::Gedcom>
401 =head2 L<Catalyst::Model::LDAP>
403 =head2 L<Catalyst::Model::NetBlogger>
405 =head2 L<Catalyst::Model::Plucene>
407 A model class for the Plucene search engine.
409 =head2 L<Catalyst::Model::Proxy>
411 =head2 L<Catalyst::Model::SVN>
413 =head2 L<Catalyst::Model::Xapian>
415 A model class for the Xapian search engine.
419 =head2 L<Catalyst::View::Atom::XML>
421 =head2 L<Catalyst::View::Chart::Strip>
423 =head2 L<Catalyst::View::CSS::Squish>
425 =head2 L<Catalyst::View::Embperl>
427 =head2 L<Catalyst::View::GD::Barcode>
429 =head2 L<Catalyst::View::GraphViz>
431 =head2 L<Catalyst::View::HTML::Template>
433 A view component for rendering pages with L<HTML::Template>.
435 =head2 L<Catalyst::View::Jemplate>
437 =head2 L<Catalyst::View::JSON>
439 =head2 L<Catalyst::View::Mason>
441 A view component for rendering pages with L<HTML::Mason>.
443 =head2 L<Catalyst::View::MicroMason>
445 =head2 L<Catalyst::View::PHP>
447 =head2 L<Catalyst::View::PSP>
449 A view component for rendering pages using PSP, a Perl extension
450 implementing a JSP-like templating system. See L<Text::PSP>.
452 =head2 L<Catalyst::View::Petal>
454 A view component for rendering pages using Petal, the Perl Template
455 Attribute Language, an XML-based templating system. See L<Petal>.
457 =head2 L<Catalyst::View::TT>
459 A view component for rendering pages with Template Toolkit. See
462 =head2 L<Catalyst::View::XSLT>
464 =head2 L<Catalyst::View::vCard>
466 =head1 OBSOLETE MODULES
468 =head2 L<Catalyst::Model::DBIC>
470 Replaced by L<Catalyst::Model::DBIC::Schema>.
472 =head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
474 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
476 =head2 L<Catalyst::Plugin::Authentication::CDBI>
478 Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
480 =head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
482 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
484 =head2 L<Catalyst::Plugin::Authentication::LDAP>
486 Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
488 =head2 L<Catalyst::Plugin::Authentication::OpenID>
490 L<Catalyst::Plugin::Authentication::OpenID> is a plugin that implements
491 support for OpenID authentication. For more information on OpenID, take
492 a look at L<http://www.openid.net/>.
494 =head2 L<Catalyst::Plugin::Authentication::Simple>
496 Replaced by L<Catalyst::Plugin::Authentication>.
498 =head2 L<Catalyst::Plugin::Authorization::CDBI::GroupToken>
500 =head2 L<Catalyst::Plugin::CDBI::Transaction>
502 =head2 Catalyst::Plugin::Config::*
504 The L<Catalyst::Plugin::Config::JSON> and L<Catalyst::Plugin::Config::YAML>
505 modules have been replaced by their corresponding L<Catalyst::Plugin::ConfigLoader>
508 =head2 L<Catalyst::Plugin::SanitizeUrl>
510 =head2 L<Catalyst::Plugin::SanitizeUrl::PrepAction>
512 =head2 Catalyst::Plugin::Session::*
514 The L<Catalyst::Plugin::Session::CGISession>,
515 L<Catalyst::Plugin::Session::FastMmap>,
516 L<Catalyst::Plugin::Session::Flex>, and
517 L<Catalyst::Plugin::Session::Manager>
518 modules have been replaced by the <Catalyst::Plugin::Session> framework.
522 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
524 Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
526 Jesse Sheidlower E<lt>jester@panix.comE<gt>
528 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
530 David Kamholz E<lt>dkamholz@cpan.orgE<gt>
534 This program is free software, you can redistribute it and/or modify it under
535 the same terms as Perl itself.