Boost logo

Boost :

Subject: Re: [boost] [GSoC 2014] Http Server Proposal
From: Bjorn Reese (breese_at_[hidden])
Date: 2014-03-06 06:23:58


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 ;-)


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk