++ed by:
TMUELLER IONCACHE RWSTAUNER EMAZEP MISHIN
96 non-PAUSE users
Author image Tatsuhiko Miyagawa
and 115 contributors

Changes for version 1.0040 - 2016-04-01

  • INCOMPATIBLE CHANGES
    • Fixes a mistake in the value of %D and %T in Accesslog::Timed middleware. This is due to a bug in Apache::LogFormat::Compiler that sets a wrong value for these fields. This bug has been fixed and now it emits what the documentation has always said, in the same way as how Apache's log format works.
      • However, this is a BREAKING CHANGE if you are using '%D' or '%T' in your log formats, and you'll likely need to swap them if you need the same values as previously. Read https://github.com/plack/Plack/issues/549 for more details. (astj) #549, #551
  • IMPROVEMENTS
    • Remove the use of HTTP::Body in favor of HTTP::Entity::Parser (kazeburo) #538
    • Increase the buffer size to 1MB for requests already buffered by the PSGI server
    • Allow passing an already-open listen socket to HTTP::Server::PSGI (ilmari) #550
  • BUG FIXES
    • Lint middleware now allows blessed code refs as a PSGI app (smcmurray) #542
    • Fix log4perl tests to pass when running in parallel (rsimoes) #545

Documentation

Run PSGI application with Plack handlers

Modules

Converts HTTP::Request and HTTP::Response from/to PSGI env and response
Standalone PSGI compatible HTTP server
Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)
cgi-bin replacement for Plack servers
Cascadable compound application
Serve static files from document root with directory index
Serve static files from root directory
Run .psgi files from a directory
Map multiple apps in different paths
Compiles a CGI script as PSGI application
OO and DSL to enable Plack Middlewares
Base class for PSGI endpoints
Parse HTTP headers
Pure perl fallback of HTTP::Parser::XS
Connects PSGI applications and Web servers
Apache 1.3.x mod_perl handlers to run PSGI application
Apache 2.0 mod_perl handler to run PSGI application
CGI handler for Plack
FastCGI handler for Plack
adapter for HTTP::Server::PSGI
adapter for HTTP::Server::PSGI
HTTP::Request/Response compatible interface with HTTP::Tiny backend
(auto)load Plack Servers
Delay the loading of .psgi until the first run
Restarting loader
forking implementation of plackup
MIME type registry
Base class for easy-to-use PSGI middleware
Logs requests like Apache's log format
Logs requests with time and accurate body size
Simple basic authentication middleware
Enable buffering for non-streaming aware servers
Applies chunked encoding to the response body
Conditional wrapper for Plack middleware
Middleware to enable conditional GET
Adds Content-Length header automatically
Automatically sets the Content-MD5 header on all String bodies
Set Error Document based on HTTP status code
Catch HTTP exceptions
auto delete response body in HEAD requests
fixes wrong SCRIPT_NAME and PATH_INFO that IIS6 sets
fixes buffer being cut off on redirect when keep-alive is active on IIS.
Wraps JSON response in JSONP if callback parameter is specified
fixes wrong SCRIPT_NAME and PATH_INFO that lighttpd sets
Validate request and response
Uses Log::Log4perl to configure logger
Uses Log::Dispatch to configure logger
Send logs to /dev/null
Reorder HTTP headers for buggy clients
Allows PSGI apps to include or forward requests recursively
Refresh all modules in %INC
Sets an X-Runtime response header
Filters response content
Simple logger that prints to psgi.errors
Displays stack trace when your app dies
serve static files with Plack
Sample middleware to add X-Framework
Sets X-Sendfile (or a like) header for frontends
Portable HTTP request object from PSGI env hash
handles file upload requests
Portable HTTP Response object for PSGI response
plackup core
Test PSGI applications with various backends
Run mocked HTTP tests through PSGI applications
Run HTTP tests through live Plack servers
Test suite for Plack handlers
Utility subroutines for Plack server and framework developers
Accessor generation utility for Plack

Provides

in lib/Plack/Handler/CGI.pm
in lib/Plack/Middleware/Recursive.pm
in lib/Plack/TempBuffer.pm
in lib/Plack/Util.pm
in lib/Plack/Util.pm