
Greetings, I've been working over the past 7+ months on a little library that uses Boost and ASIO to implement HTTP functionality. Originally I called this "libpion," then renamed it to the "Pion Network Library." I'm using it as piece of a larger open source project for complex event processing, which has taken on the overall "Pion" brand (hence the change). http://pion.atomiclabs.com/pion/net The library includes pretty comprehensive support for HTTP versions 1.0 and 1.1, including persistent connections, pipelining, chunked encodings, etc. It supports client-side operations as well as an extensive server-side implementation, and can use either blocking or asynchronous sockets (through use of the Boost.ASIO library). The original purpose was to create a Boost/C++ library for building lightweight HTTP interfaces for applications. Although it can certainly be used to serve files, It is not meant to replace or compete with any full-featured web server (like Apache or lighttpd). One of its main features/uses is to bind HTTP resources to code. The library is now fairly stable and feature-complete, and I have a few other developers helping out with it. I've been thinking more lately about preparing this to submit for formal review as a Boost library. However, there are a few obstacles that I know of: 1) This is my first Boost library, and I made the mistake of using CamelCase and other non-Boost styles starting it out. So, some re- naming and cleanup work would obviously be required. I don't imagine this would take too much time, though. 2) Some of the functionality overlaps with other libraries that have not yet been included or accepted into Boost (most notably, I think Boost.Extension would overlap with Pion's handling of web services: dynamic plug-ins bound to resources). I'd be happy (and actually prefer) to swap out this code with Boost.Extension, but I do not believe it has been reviewed or accepted yet either. I could also prepare a version with the plug-in functionality removed, but since it's being used in other projects, this would create a fork requiring extra maintenance energy, etc. 3) I know that Dean Michael Berris has formed a group of developers working on a more comprehensive network protocol library for Boost called cpp-netlib. HTTP is one of the protocols they are working on. I've offered and would still be quite happy to combine efforts somehow, but that project still seems to have a long way to go, and a few people have mentioned that it may be preferable to have an independent library focused on HTTP. So.. I decided to throw all this out there and see what people think. Should Boost have its own HTTP library, or should it be part of an more comprehensive network protocol library? Would it be better have something available sooner in Boost that works and is reliable, and try to resolve the overlap over time as cpp-netlib matures? Or, would it be better to wait and try to merge my library (or at least it's functionality) into cpp-netlib? Thanks, -Mike