The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

NAME

HTTP::Engine::MinimalCGI - fast loading, minimal HTTP::Engine::Interface

SYNOPSIS

my $engine = HTTP::Engine->new(
interface => {
module => 'MinimalCGI',
request_handler => sub {
my $req = shift;
HTTP::Engine::Response->new(
status => 200,
body => 'Hello, world!',
);
},
},
);
$engine->run;

DESCRIPTION

HTTP::Engine::MinimalCGI implements a minimal version of the HTTP::Engine spec for the vanilla CGI environment. It has a very fast compile time-- on par with CGI::Simple or CGI.pm-- and is forward-compatible with the full HTTP::Engine spec. However, it is missing some features.

SUPPORTED METHODS

Request
new
hostname
protocol
method
param
upload
Response
new
header
headers
status
body
protocol
content_length
content_type
cookies

WHY DO WE NEED THIS?

Some people says "HTTP::Engine is too heavy on my shared hosting account". Perhaps you believe that professional web developers don't use vanilla CGI. But newbies and small projects use shared hosting accounts and will find the performance of this solution in vanilla CGI is sufficient.

WARNINGS

DO NOT LOAD FULL SPEC HTTP::Engine AND THIS MODULE IN ONE PROCESS. HTTP::Engine::MinimalCGI provides alternative, conflicting implementations of the HTTP::Engine, HTTP::Engine::Request, HTTP::Engine::Response namespaces.

DEPENDENCIES

CGI::Simple, HTTP::Headers::Fast, Scalar::Util

AUTHORS

tokuhirom

CONTRIBUTORS

Mark Stosberg <mark@summersault.com> - helped with the documentation.