Mike Dickey's picture

libpion v0.1.4 is now available for download.

This is what I consider to be the first functional release. Query string "name=value" pairs are now extracted from both GET and POST HTTP requests into standard STL containers for easy use within any HTTP module. Responses can be easily built using a stream-like HTTPResponse class which supports any mixture of both static (persistent) and dynamic (temporary) data. All the complexities of threading, caching and asynchronous I/O is handled by the library so that threads and CPUs can always be used as efficiently as possible.

An EchoModule has been added that echoes HTTP requests, mainly to test HTTPRequest parsing and demonstrate how that class can be used. A FileModule has been added that serves a directory of files, essentially acting as a simple web server. Modules can now be built as independent plug-ins that programs can load dynamically. libpion handles all the platform-specific issues related to paths and file extensions.

This release is the first to include support for all five of the primary platforms we aim to support: Windows, MacOS X, Linux, Solaris and FreeBSD. Thanks to autotools, building libpion under any of these platforms is as easy as running "./configure; make" (assuming you are using GCC and all of the necessary dependencies are installed).

It has been almost 30 days since the first release of libpion. There is still a bit of work to do, but after a few more weeks we'll probably be ready to tag the first "beta."