Subject: [boost] [http] Formal Review
From: David Sankel (camior_at_[hidden])
Date: 2015-08-17 00:29:03
> 1. Should Boost.Http be accepted into Boost? Please state all conditions
for acceptance explicity.
No. This library unfortunately is not complete enough to be in Boost.
> 2. What is your evaluation of the design?
>From my reading, the design of the low level components that are in the
library seems okay.
> 3. What is your evaluation of the implementation?
Looks okay from what I've seen.
> 4. What is your evaluation of the documentation?
More tutorials for common use cases are needed. I fear, though, that the
only use case of these low-level components is the writing of a
higher-level one on top of it that is more widely useful.
> 5. What is your evaluation of the potential usefulness of the library?
In its current state, I do not find this library very useful. A Boost HTTP
library should support both client side and server side. Micro-services are
quite commonly used these days and only communicating one direction
excludes this library from having full participation.
While I very much enjoy and appreciate the exposed lower-level
functionality, higher level abstractions are required to scratch the itch
most developers have when they want a C++ HTTP library. I could not
recommend this library over pion for this reason even though I like this
library's design better. In particular, we need really good stories for:
a) How to fetch the contents of a website given a URL.
b) How to make a static page server.
c) How to write code that handles a POST or GET request dynamically based
on specified parameters.
d) How to write a server that accepts file uploads.
I would also like to see instances of this library being used in
production. That would give some evidence that the design works in practice.
There is the argument that we should accept this into Boost now because,
once it has more features, it'll be really great. I think that Boost is for
libraries that are already really great. I don't see how getting more
exposure to an incomplete library helps either Boost or the library, but I
do see how it can do damage to the Boost name.
> 6. Did you try to use the library? With what compiler? Did you have any
I built the library and ran the single example. I used gcc 5.2.0. I didn't
run into any problems and was quite happy with this part of the review.
> 7. How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?
I spent a couple hours reading through the documentation and the mailing
> 8. Are you knowledgeable about the problem domain?
Yes. I'm the architect of a large C++-based web framework for the US
Government. We currently use pion as our primary server and client
low-level library. I've contributed some minor patches to pion.
-- David Sankel