Chouette

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
AnyEvent is used as the glue to connect all the asynchronous libraries,
although Chouette depends on Feersum and therefore EV for its event
loop. It uses Feersum in PSGI mode so it can use Plack for request
parsing, and has support for Plack::Middleware wrappers. Feersum is the
least conservative choice in the stack but there aren't very many
alternatives (Twiggy is a possibility but it is somewhat buggy and you
need a hack to use unix sockets).
 
Chouette generally assumes that its input will be
"application/x-www-form-urlencoded". Plack::Request::WithEncoding is
used so that text is properly decoded (we recommend UTF-8 of course).
For output, the default is "application/json" encoded with JSON::XS.
Both the input and output types can be modified, although this is only
partially documented so far.
 
Chouette apps can optionally load a config file and its format is
"YAML", loaded with the YAML module. Regexp::Assemble is used for
efficient route-dispatch.
 
The above aside, Chouette's main purpose is to glue together several of
my own modules into a cohesive whole. These modules have been designed

lib/Chouette.pm  view on Meta::CPAN

455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
=head1 NAME
 
Chouette - REST API Framework
 
=head1 DESCRIPTION
 
L<Chouette> is a framework for making asynchronous HTTP services. It makes some opinionated design choices, but is otherwise fairly flexible.
 
L<AnyEvent> is used as the glue to connect all the asynchronous libraries, although Chouette depends on L<Feersum> and therefore L<EV> for its event loop. It uses L<Feersum> in PSGI mode so it can use L<Plack> for request parsing, and has support for...
 
Chouette generally assumes that its input will be C<application/x-www-form-urlencoded>. L<Plack::Request::WithEncoding> is used so that text is properly decoded (we recommend UTF-8 of course). For output, the default is C<application/json> encoded wi...
 
Chouette apps can optionally load a config file and its format is C<YAML>, loaded with the L<YAML> module. L<Regexp::Assemble> is used for efficient route-dispatch.
 
The above aside, Chouette's main purpose is to glue together several of my own modules into a cohesive whole. These modules have been designed to work together and I have used them to build numerous services, some of which handle a considerable amoun...
 
Chouette was extracted from some of these services I have built before, and I have put in the extra effort required so that all the modules work together in the ways they were designed:
 
=over
 
=item L<AnyEvent::Task>



( run in 0.561 second using v1.01-cache-2.11-cpan-00829025b61 )