
On 03/01/2014 02:06 AM, VinÃcius dos Santos Oliveira wrote:
I'm interested in develop an asynchronous HTTP server for Boost as part of GSoC.
I think that this would be a good project, and you look like a capable candidate judging from your descriptions and your Tufao project. A reference to other readers: https://github.com/vinipsmaker/tufao The two leading contenders for C++ HTTP servers based on Boost.Asio are Pion and cpp-netlib, and you should investigate them: https://github.com/cloudmeter/pion http://cpp-netlib.org/ Back in 2008 there was talk about merging these libraries into a Boost.Network proposal, but I do not know what happened to these efforts.
The library would be modular to the point where you can use only small parts of it and you could also replace components that you don't like.
This is a very sound design principle. Two obvious candidates for independent components are HTTP and URL parsing/generation. As the HTTP component would have to handle HTTP/1.1 chunking and WebSockets, it may be an idea to design it as a streaming parser as it provides a unified interface for all HTTP artifacts, including the live video streaming that you mention. Another use case to consider is the UPnP HTTPU (HTTP over UDP.) Concerning the URL parser/generator, an URI library has been proposed for the C++ standard: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3625.html
to things that I know it will work long-term. If the implementation project end up being too small, I can also implement WebSocket support
I would worry more about it becoming too large ;-)