Boost logo

Boost :

Subject: Re: [boost] [beast] Request for Discussion
From: Bjorn Reese (breese_at_[hidden])
Date: 2016-10-02 10:31:49


On 09/25/2016 02:26 PM, Vinnie Falco wrote:

> I noted that Boost.Http and Beast had minimal overlap. Beast provides
> low level HTTP protocol functionality while Boost.Http offers a
> turn-key HTTP server. From that discussion came some action items, I

That is a mischaracterization of the differences between Boost.Http
and Beast. Both provide low-level HTTP functionality.

Beast uses an Asio socket together with free functions to read/write
HTTP messages, whereas Boost.Http uses its own basic_socket that
contains the Asio socket. Those are just two different approaches that
provide the same functionality.

In addition to the low-level basic_socket, Boost.Http also has some
adaptors for a lower-level server side. That was done because we
recognized that the two main audiences for a C++ HTTP library would be
(1) developers writing small embedded HTTP servers, and (2) developers
using HTTP to get stuff. The latter are not particularly interested in
low level APIs, so we initially focused on the former.

> made changes to the Beast message model. I delivered a header-only
> parser with no dependencies on the rest of Beast so it could be
> re-used in Boost.Http, and informed Vinicius. I started a discussion

There appears to have been some kind of miscommunication. The BSoC
project was already accepted and announced by the time you announced
your intension to write a HTTP parser (which escaped my attention.)

Looking briefly at your HTTP parser I can see that it is a push parser,
which may serve your current purposes, but not those of higher-level
use cases.

The purpose of the BSoC project was to investigate the more flexible
design of pull parsers that extends more easily to higher-level
interfaces.


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