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.