package Dancer2::Plugins;
# ABSTRACT: Recommended Dancer2 plugins
$Dancer2::Plugins::VERSION = '0.149000_01';
__END__

=pod

=head1 NAME

Dancer2::Plugins - Recommended Dancer2 plugins

=head1 VERSION

version 0.149000_01

=head1 DESCRIPTION

Dancer2 aims to keep the core as small as possible, but there are a growing
number of useful plugins to add helpful features.

This document provides a quick summary of some recommended plugins.

=head2 Plugins

=over 4

=item L<Dancer2::Plugin::Adapter>

Wrap any simple class as a service for Dancer2.

=item L<Dancer2::Plugin::Ajax>

Provides easy way to add Ajax route handlers.

=item L<Dancer2::Plugin::Auth::Tiny>

Provides an extremely simple way of requiring that a user be logged in
before allowing access to certain routes.

=item L<Dancer2::Plugin::BrowserDetect>

Provides an easy to have info of the browser. keyword within your
Dancer application.

=item L<Dancer2::Plugin::Cache::CHI>

Provides caching for generated pages and/or arbitrary data.  Uses L<CHI>, so is
backend-agnostic - caching can be done in memory, to files, using Memcache, in a
database, or any other method for which there is a L<CHI::Driver> module.

=item L<Dancer2::Plugin::Database>

Provides easy database access via DBI, reading the DB connection
details from your app's config file, and taking care of ensuring the
connection is still valid and reconnecting if not (useful in
persistent environments).  Just calling the C<database> keyword gives
you a connected and working database handle. It also provides some
helpful keywords to make inserting/updating data as simple as it
should be.

=item L<Dancer2::Plugin::DBIC>

Provides easy acces to DBIx::Class database virtualization.

=item L<Dancer2::Plugin::Deferred>

Provides a method for deferring a one-time message across a
redirect. It is similar to "flash" messages, but without the race
conditions that can result from multiple tabs in a browser or from
AJAX requests.

=item L<Dancer2::Plugin::Emailesque>

Provides easy email-sending powered by Email::Send - simply call the C<email>
keyword.  Email sending settings can be taken from your app's config.

=item L<Dancer2::Plugin::Feed>

Provides an easy way to generate RSS or Atom feed.

=item L<Dancer2::Plugin::Paginator>

Dancer2 plugin for Paginator::Lite.

=item L<Dancer2::Plugin::Queue>

Provides a generic interface to a message queue.

=item L<Dancer2::Plugin::Queue::MongoDB>

A L<Dancer2::Plugin::Queue> using L<MongoDBx::Queue>.

=item L<Dancer2::Plugin::REST>

Makes writing RESTful web services easy.

=item L<Dancer2::Plugin::RoutePodCoverage>

Plugin to verify pod coverage in our app routes.

=item L<Dancer2::Plugin::Syntax::GetPost>

Provides very simple syntactic sugar to define a handler for GET and
POST requests.

=back

=head2 Session Engines

=over 4

=item L<Dancer2::Session::Cookie>

A session factory for Dancer 2 that stores session state within a
browser cookie.

=back

More plugins are appearing on CPAN all the time - just search for
C<Dancer2::Plugin> to see what may have been released since this
document was last updated!

=head1 AUTHOR

Dancer Core Developers

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Alexis Sukrieh.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
