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 to
14 check the Catalyst::Plugin namespace for additional plugins and consult
15 the mailing list ( L<http://dev.catalyst.perl.org/wiki/Support> ) for
16 advice on the current status or preferred use of your chosen
21 =head2 L<Catalyst::Plugin::Account::AutoDiscovery>
23 Provides Account Auto-Discovery for Catalyst.
25 =head2 L<Catalyst::Plugin::Acme::Scramble>
27 Implements a potent meme about how easily we can read scrambled text if
28 the first and last letters remain constant. Operates on text/plain and
29 text/html served by your Catalyst application.
31 =head2 L<Catalyst::Plugin::Alarm>
33 =head2 L<Catalyst::Plugin::AtomPP>
35 Allows you to dispatch AtomPP methods.
37 =head2 L<Catalyst::Plugin::AtomServer>
39 A plugin that implements the necessary bits to make it easy to build an
40 Atom API server for any Catalyst-based application.
42 =head2 L<Catalyst::Plugin::Authentication>
44 An infrastructure plugin for the Catalyst authentication framework. Now the
45 recommended way to do any form of Authentication.
47 =head2 L<Catalyst::Plugin::Authentication::Credential::Atom>
49 L<Catalyst::Plugin::Authentication::Credential::Atom> is a plugin which
50 implements WSSE and Basic authentication for Catalyst applications using
51 L<Catalyst::Plugin::AtomServer>
53 =head2 L<Catalyst::Plugin::Authentication::Credential::CHAP>
55 =head2 L<Catalyst::Plugin::Authentication::Credential::Flickr>
57 Provides authentication via Flickr, using its API.
59 =head2 L<Catalyst::Plugin::Authentication::Credential::Hatena>
61 =head2 L<Catalyst::Plugin::Authentication::Credential::HTTP>
63 Implements HTTP Basic authentication for Catalyst.
65 =head2 L<Catalyst::Plugin::Authentication::Credential::JugemKey>
67 =head2 L<Catalyst::Plugin::Authentication::Credential::PAM>
69 =head2 L<Catalyst::Plugin::Authentication::Credential::Password>
71 Takes a username (or userid) and a password, and tries various methods of
72 comparing a password based on what the chosen store's user objects support.
73 Part of the Authentication Framework L<Catalyst::Plugin::Authentication>.
75 =head2 L<Catalyst::Plugin::Authentication::Credential::TypeKey>
77 Integrates L<Authen::TypeKey> with L<Catalyst::Plugin::Authentication>.
79 =head2 L<Catalyst::Plugin::Authentication::OpenID>
81 L<Catalyst::Plugin::Authentication::OpenID> is a plugin that implements
82 support for OpenID authentication. For more information on OpenID, take
83 a look at L<http://www.openid.net/>.
85 =head2 L<Catalyst::Plugin::Authentication::Store>
87 The core authentication store documentation.
89 =head2 L<Catalyst::Plugin::Authentication::Store::DBIC>
91 Does authentication and authorization against a L<DBIx::Class> or
94 =head2 L<Catalyst::Plugin::Authentication::Store::Htpasswd>
96 Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files for its
97 authentication storage.
99 =head2 L<Catalyst::Plugin::Authentication::Store::HTTP>
101 =head2 L<Catalyst::Plugin::Authentication::Store::LDAP>
103 Authenticates users using an LDAP server.
105 =head2 L<Catalyst::Plugin::Authentication::Store::Minimal>
107 Lets you create a very quick and dirty user database in your application's
108 config hash. Great for getting up and running quickly.
110 =head2 L<Catalyst::Plugin::Authentication::User::Hash>
112 An easy authentication user object based on hashes.
113 See L<Catalyst::Plugin::Authentication::Store::Minimal> for more info.
115 =head2 L<Catalyst::Plugin::Authorization::ACL>
117 This module provides Access Control List style path protection, with arbitrary
118 rules for L<Catalyst> applications. It operates only on the Catalyst private
119 namespace, at least at the moment.
121 =head2 L<Catalyst::Plugin::Authorization::Roles>
123 L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
124 for Catalyst based on L<Catalyst::Plugin::Authentication>.
126 =head2 L<Catalyst::Plugin::AutoSession>
128 =head2 L<Catalyst::Plugin::Browser>
130 Extends L<Catalyst::Request> by adding the capability of browser
131 detection. It returns an instance of L<HTTP::BrowserDetect>, which lets
132 you get information from the client's user agent.
134 =head2 Catalyst::Plugin::Cache::FastMmap, FileCache, BerkeleyDB, and Memcached
136 L<Catalyst::Plugin::Cache::FastMmap>,
137 L<Catalyst::Plugin::Cache::FileCache>,
138 L<Catalyst::Plugin::Cache::BerkeleyDB>, and
139 L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
140 enabling easy access to a shared cache.
142 =head2 L<Catalyst::Plugin::Captcha>
144 =head2 L<Catalyst::Plugin::CGI::Untaint>
146 =head2 L<Catalyst::Plugin::Charsets::Japanese>
148 =head2 L<Catalyst::Plugin::Compress::Bzip2>
150 =head2 L<Catalyst::Plugin::Compress::Deflate>
152 =head2 L<Catalyst::Plugin::Compress::Gzip>
154 =head2 L<Catalyst::Plugin::Compress::Zlib>
156 =head2 L<Catalyst::Plugin::ConfigLoader>
158 Provides a standard method for loading config files. Support
159 exists for various formats. See
160 L<Catalyst::Plugin::ConfigLoader::General>
161 L<Catalyst::Plugin::ConfigLoader::INI>,
162 L<Catalyst::Plugin::ConfigLoader::JSON>,
163 L<Catalyst::Plugin::ConfigLoader::Perl>,
164 L<Catalyst::Plugin::ConfigLoader::XML>, and
165 L<Catalyst::Plugin::ConfigLoader::YAML>
167 =head2 L<Catalyst::Plugin::ConfigurablePathTo>
169 =head2 L<Catalyst::Plugin::Continuation>
171 =head2 L<Catalyst::Plugin::DateTime>
173 =head2 L<Catalyst::Action::RenderView>
175 Creates a sane, standard end method for your application.
177 =head2 L<Catalyst::Plugin::Devel::InPageLogs>
179 =head2 L<Catalyst::Plugin::Devel::InPageLogs::Log>
181 =head2 L<Catalyst::Plugin::Dojo>
183 =head2 L<Catalyst::Plugin::Dumper>
185 =head2 L<Catalyst::Plugin::Email>
187 Sends email with L<Email::Send> and L<Email::MIME::Creator>.
189 =head2 L<Catalyst::Plugin::Email::Japanese>
191 =head2 L<Catalyst::Plugin::Email::Page>
193 =head2 L<Catalyst::Plugin::EmailValid>
195 =head2 L<Catalyst::Plugin::FillInForm>
197 A plugin based on C<HTML::FillInForm>, which describes itself as a module
198 to automatically insert data from a previous HTML form into the HTML input,
199 textarea, radio buttons, checkboxes, and select tags. C<HTML::FillInForm>
200 is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
201 the values into the form tags.
203 =head2 L<Catalyst::Plugin::Flavour>
205 =head2 L<Catalyst::Plugin::FormValidator>
207 A form validator plugin that uses L<Data::FormValidator> to validate and
208 set up form data from your request parameters. It's a quite thin wrapper
209 around that module, so most of the relevant information can be found there.
211 =head2 L<Catalyst::Plugin::FormValidator::Simple>
213 =head2 L<Catalyst::Plugin::Geography>
215 Allows you to retrieve various kinds of geographical information. You can
216 retrieve the country or code from the current user, from a given IP
217 address, or from a given hostname.
219 =head2 L<Catalyst::Plugin::Geography::Implementation>
221 =head2 L<Catalyst::Plugin::HashedCookies>
223 =head2 L<Catalyst::Plugin::HTML::Scrubber>
225 =head2 L<Catalyst::Plugin::HTML::Widget>
227 =head2 L<Catalyst::Plugin::I18N>
229 An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
230 and Maketext classes under your application's I18N namespace.
232 =head2 L<Catalyst::Plugin::JSONRPC>
234 =head2 L<Catalyst::Plugin::Markdown>
236 =head2 L<Catalyst::Plugin::Message>
238 =head2 L<Catalyst::Plugin::MobileAgent>
240 =head2 L<Catalyst::Plugin::Observe>
242 Provides the ability to register AOP-like callbacks to specific Engine
243 events. Subclasses L<Class::Publisher>.
245 =head2 L<Catalyst::Plugin::OrderedParams>
247 Adjusts the way that parameters operate, causing them to appear in the same
248 order they were submitted by the browser. This can be useful for creating
249 things such as email forms.
251 =head2 L<Catalyst::Plugin::PageCache>
253 Helps improve the performance of slow or frequently accessed pages by
254 caching the entire output of your page. Subsequent requests to the page
255 will receive the page very quickly from cache.
257 =head2 L<Catalyst::Plugin::Params::Nested>
259 =head2 L<Catalyst::Plugin::Params::Nested::Expander>
261 =head2 L<Catalyst::Plugin::Pluggable>
263 A plugin for pluggable Catalyst applications.
265 =head2 L<Catalyst::Plugin::Prototype>
267 A plugin for the Prototype JavaScript library. This Plugin allows you to
268 easily implement AJAX functionality without actually knowing Javascript.
270 =head2 L<Catalyst::Plugin::Redirect>
272 =head2 L<Catalyst::Plugin::RequestToken>
274 =head2 L<Catalyst::Plugin::RequireSSL>
276 Use this if you would like to force visitors to access certain pages using
277 only SSL mode. An attempt to access the page in non-SSL mode will receive a
278 redirect into SSL mode. Useful for login pages, shopping carts, user
279 registration forms, and other sensitive data.
281 =head2 L<Catalyst::Plugin::Scheduler>
283 =head2 L<Catalyst::Plugin::Session>
285 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
286 include session handling in an application. You can choose from several
287 different backend storage methods and combine that with your choice of
288 client-side storage methods.
290 =head2 L<Catalyst::Plugin::Session::PerUser>
292 =head2 L<Catalyst::Plugin::Session::State>
294 =head2 L<Catalyst::Plugin::Session::State::Cookie>
296 =head2 L<Catalyst::Plugin::Session::State::URI>
298 =head2 L<Catalyst::Plugin::Session::Store>
300 =head2 L<Catalyst::Plugin::Session::Store::CDBI>
302 =head2 L<Catalyst::Plugin::Session::Store::DBI>
304 =head2 L<Catalyst::Plugin::Session::Store::DBIC>
306 =head2 L<Catalyst::Plugin::Session::Store::Dummy>
308 =head2 L<Catalyst::Plugin::Session::Store::FastMmap>
310 =head2 L<Catalyst::Plugin::Session::Store::File>
312 =head2 L<Catalyst::Plugin::Session::Store::Memcached>
314 =head2 L<Catalyst::Plugin::Session::Test::Store>
316 =head2 L<Catalyst::Plugin::Singleton>
318 =head2 L<Catalyst::Plugin::Snippets>
320 =head2 L<Catalyst::Plugin::SRU>
322 Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
323 and C<searchRetrieve>) from its own class.
325 =head2 L<Catalyst::Plugin::StackTrace>
327 =head2 L<Catalyst::Plugin::Static>
329 L<Catalyst::Plugin::Static> is a plugin to serve static files from
330 C<< $c->config->{root} >>. Intended chiefly for development
333 =head2 L<Catalyst::Plugin::Static::Simple>
335 Serves static files in your application without requiring a single line of
336 code. This plugin is now included in the core Catalyst distribution.
338 =head2 L<Catalyst::Plugin::SubRequest>
340 A plugin to allow subrequests to actions to be made within Catalyst. Nice
341 for portal software and such.
343 =head2 L<Catalyst::Plugin::SuperForm>
345 An interface to the L<HTML::SuperForm> module, enabling easy HTML form
348 =head2 L<Catalyst::Plugin::Textile>
350 A persistent Textile processor for Catalyst that uses C<Text::Textile>, a
351 Perl-based implementation of Dean Allen's Textile syntax. Textile is
352 shorthand for doing common formatting tasks (see L<http://textism.com>).
354 =head2 L<Catalyst::Plugin::Unicode>
356 Provides a Unicode-aware Catalyst. On request, it decodes all params from
357 UTF-8 octets into a sequence of logical characters. On response, it encodes
358 the body into UTF-8 octets.
360 =head2 L<Catalyst::Plugin::Unicode::Encoding>
362 =head2 L<Catalyst::Plugin::Upload::Basename>
364 =head2 L<Catalyst::Plugin::Upload::MD5>
366 =head2 L<Catalyst::Plugin::Upload::MIME>
368 =head2 L<Catalyst::Plugin::UploadProgress>
370 =head2 L<Catalyst::Plugin::XMLRPC>
372 Allows your Controller class to dispatch XMLRPC methods from its own class.
376 =head2 L<Catalyst::Controller::BindLex>
378 Lets you mark lexical variables with a C<Stashed> attribute, automatically
379 passing them to the stash.
383 =head2 L<Catalyst::Model::CDBI>
385 The C<Class::DBI> (CDBI) model class. It is built on top of
386 C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
387 sub-classes by scanning the underlying table schemas, setting up columns
390 =head2 L<Catalyst::Model::CDBI::Plain>
392 A neutral interface to the C<Class::DBI> module which does not attempt
393 to automate table setup. It allows the user to manually set up
394 C<Class::DBI> classes, either by doing so within the Catalyst model
395 classes themselves, or by inheriting from existing C<Class::DBI>
398 =head2 L<Catalyst::Model::DBIC::Schema>
400 A L<DBIx::Class> model class that can use either an explicit
401 L<DBIx::Class::Schema> or one automatically loaded from your database
402 via L<DBIx::Class::Schema::Loader>.
404 =head2 L<Catalyst::Model::EVDB>
406 =head2 L<Catalyst::Model::File>
408 =head2 L<Catalyst::Model::Gedcom>
410 =head2 L<Catalyst::Model::LDAP>
412 =head2 L<Catalyst::Model::NetBlogger>
414 =head2 L<Catalyst::Model::Plucene>
416 A model class for the Plucene search engine.
418 =head2 L<Catalyst::Model::Proxy>
420 =head2 L<Catalyst::Model::SVN>
422 =head2 L<Catalyst::Model::Xapian>
424 A model class for the Xapian search engine.
428 =head2 L<Catalyst::View::Atom::XML>
430 =head2 L<Catalyst::View::Chart::Strip>
432 =head2 L<Catalyst::View::CSS::Squish>
434 =head2 L<Catalyst::View::Embperl>
436 =head2 L<Catalyst::View::GD::Barcode>
438 =head2 L<Catalyst::View::GraphViz>
440 =head2 L<Catalyst::View::HTML::Template>
442 A view component for rendering pages with L<HTML::Template>.
444 =head2 L<Catalyst::View::Jemplate>
446 =head2 L<Catalyst::View::JSON>
448 =head2 L<Catalyst::View::Mason>
450 A view component for rendering pages with L<HTML::Mason>.
452 =head2 L<Catalyst::View::MicroMason>
454 =head2 L<Catalyst::View::PHP>
456 =head2 L<Catalyst::View::PSP>
458 A view component for rendering pages using PSP, a Perl extension
459 implementing a JSP-like templating system. See L<Text::PSP>.
461 =head2 L<Catalyst::View::Petal>
463 A view component for rendering pages using Petal, the Perl Template
464 Attribute Language, an XML-based templating system. See L<Petal>.
466 =head2 L<Catalyst::View::TT>
468 A view component for rendering pages with Template Toolkit. See
471 =head2 L<Catalyst::View::XSLT>
473 =head2 L<Catalyst::View::vCard>
475 =head1 OBSOLETE MODULES
477 =head2 L<Catalyst::Model::DBIC>
479 Replaced by L<Catalyst::Model::DBIC::Schema>.
481 =head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
483 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
485 =head2 L<Catalyst::Plugin::Authentication::CDBI>
487 Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
489 =head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
491 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
493 =head2 L<Catalyst::Plugin::Authentication::LDAP>
495 Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
497 =head2 L<Catalyst::Plugin::Authentication::Simple>
499 Replaced by L<Catalyst::Plugin::Authentication>.
501 =head2 L<Catalyst::Plugin::Authorization::CDBI::GroupToken>
503 =head2 L<Catalyst::Plugin::CDBI::Transaction>
505 =head2 Catalyst::Plugin::Config::*
507 The L<Catalyst::Plugin::Config::JSON> and
508 L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
509 corresponding L<Catalyst::Plugin::ConfigLoader> modules.
511 =head2 L<Catalyst::Plugin::DefaultEnd>
513 Replaced by L<Catalyst::Action::RenderView>
515 =head2 L<Catalyst::Plugin::SanitizeUrl>
517 =head2 L<Catalyst::Plugin::SanitizeUrl::PrepAction>
519 =head2 Catalyst::Plugin::Session::*
521 The L<Catalyst::Plugin::Session::CGISession>,
522 L<Catalyst::Plugin::Session::FastMmap>,
523 L<Catalyst::Plugin::Session::Flex>, and
524 L<Catalyst::Plugin::Session::Manager>
525 modules have been replaced by the <Catalyst::Plugin::Session> framework.
529 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
531 Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
533 Jesse Sheidlower E<lt>jester@panix.comE<gt>
535 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
537 David Kamholz E<lt>dkamholz@cpan.orgE<gt>
541 This program is free software, you can redistribute it and/or modify it under
542 the same terms as Perl itself.