Boost logo

Boost Interest :

From: Michael Dickey (mike_at_[hidden])
Date: 2007-06-19 18:07:11

I'm pleased to announce the first beta release of libpion, a C++
development library for implementing lightweight HTTP interfaces
based on Boost and ASIO. libpion is open source software licensed
under the Boost Software License, which allows anyone to use it for
free in both commercial and non-commercial applications.

libpion lets you run multiple servers listening to any number of
ports and network devices. Each server may have its own collection of
modules defined which are bound to HTTP resources. Protocols other
than HTTP can also easily be implemented for any server. A common
thread pool is used to handle operations for all servers. libpion
also supports server-side SSL & TLS encryption when built with the
OpenSSL library.

libpion uses a plug-in or module framework for handling HTTP
requests. Users of the library can easily implement modules to
process requests in any number of ways. Some example modules included
in the distribution are:

     * Hello Module: A simple “hello world” implementation
     * Log Module: When libpion is built with one of the supported
logging libraries (log4cpp, log4cxx or log4cplus), this module will
display the most recent log events recorded.
     * Echo Module: This module echos back all information parsed
within the HTTP request. It is intended mainly to demonstrate the use
of libpion's HTTPRequest and HTTPResponse objects, and to test
libpion's request parsing.
     * Cookie Module: This module displays all of the cookies
currently set within the client's browser and allows you to add and
delete cookies.
     * File Module: This module associates a disk directory (i.e. “/
var/public”) with a web resource name (i.e. “/files”). HTTP requests
may be made to receive files from within the directory (i.e. “/files/
index.htm” would deliver “/var/public/index.htm”). The file module
can cache files in memory to improve performance. It may be
configured to recognize changes when they are made, or load
everything at startup and never check for changes (for security and

For more information, please see

This is my first Boost+ASIO project and also my first open source
project. I welcome any feedback or suggestions you may have.

Take care,

Boost-interest list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at