Boost logo

Boost :

Subject: Re: [boost] [gsoc16] An update on GSoC 2016 contingency plans
From: Bjorn Reese (breese_at_[hidden])
Date: 2016-03-02 12:27:40


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


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