On 03/02/2016 05:17 PM, Niall Douglas wrote:
* Boost.Http, mentored by Bjorn Reese. https://boostgsoc14.github.io/boost.http/
Student: VinÃcius dos Santos Oliveira
Status: One peer review held
I have been preparing a proposal for GSoC 2016 which got delayed due to the usual excuses (work-load.) This is a draft of the proposal: Title: HTTP parser combinator. This proposal explores a more flexible HTTP parser framework based on ideas from parser combinators and pull parsers. The framework differentiates itself from the existing HTTP parser libraries for C/C++ on several accounts. With the help of parser combinators it offers the possibility of parsing an entire HTTP message or just a piece of it. The framework should consist of mini-parsers for the individual BNF rules in the HTTP grammar [1]. This is useful when integrating with existing HTTP transport libraries, such as libcurl, which may deliver one HTTP header at the time through a calllback mechanism. Pull parsers gives us the opportunity to replace the parser during the parsing process. This is useful for HTTP Upgrade requests, where the grammar may change "in-flight." For example, WebSockets starts off using the normal HTTP grammar, but then changes to its own binary protocol. Other examples are the differently formatted data that occurs in HTTP messages, such as x-www-form-urlencoded [2] or JSON [3]. Pull parsers also allows for smaller memory footprint. [1] https://tools.ietf.org/html/rfc7230 [2] https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 [3] https://tools.ietf.org/html/rfc7159