Apache HTTP Server Request Library

What is it?

httpd-apreq is subproject of the Apache HTTP Server Project whose committers develop and maintain the libapreq C library and its language bindings for Perl (contributions for additional language bindings are most welcome).

libapreq is a safe, standards-compliant, high-performance library used for parsing HTTP cookies, query-strings and POST data. The original version (libapreq-1.X) was designed by Lincoln Stein and Doug MacEachern. The perl APIs Apache::Request and Apache::Cookie are the lightweight mod_perl analogs of the CGI and CGI::Cookie perl modules.

Version 2 of libapreq is an improved codebase designed around APR and Apache-2's input filter API. The C codebase is separated into two independent components:

  1. libapreq2, a shared library which is based on libapr and libaprutil.
  2. A collection of modules:

Version 2 also includes the perl APIs for libapreq2- Apache2::Request, Apache2::Upload and Apache2::Cookie. The corresponding XS modules are generated by ExtUtils::XSBuilder, which is based on the new build system created specifically for mod_perl2.

The Latest Version

Details of the latest version can be found on the libapreq project page at

http://httpd.apache.org/apreq

Documentation

The documentation is in the docs/ directory. It is based on Doxygen, and can be regenerated by typing

% make docs

in the main directory.

Installation

For full details please consult the INSTALL file. Briefly, to install just the C API (libapreq2 + environment modules) on a Unix-like system:

            % ./configure --with-apache2-apxs=/path/to/apache2/bin/apxs
            % make
            % make test
            % make install

To build and install the perl API as well, either add the "--enable-perl-glue" configure option, or let Makefile.PL enable it for you:

            % perl Makefile.PL --with-apache2-apxs=/path/to/apache2/bin/apxs
            % make
            % make test 
            % make install

Licensing

Please see the file called LICENSE.

Contacts

http://httpd.apache.org/apreq/

        user lists:
               C/C++ API - modules-dev@httpd.apache.org
                Perl API - modperl@perl.apache.org
                 Tcl API - XXX
                Java API - XXX
              Python API - XXX

        developer list (bugs, patches, code contributions, etc.):
                apreq-dev@httpd.apache.org

Acknowledgments

We wish to acknowledge the following copyrighted works that make up portions of the Apache software:

libapreq2 relies heavily on the use of the GNU auto-tools to provide a build environment. The tests are based on the Apache::Test, Test::Harness and Test::Inline.

Doxygen generates the documentation for libapreq2. The perl glue and pods are generated by ExtUtils::XSBuilder.