Boost logo

Boost :

Subject: Re: [boost] [review][beast] Review of Beast starts today : July 1 - July 10
From: Daniela Engert (dani_at_[hidden])
Date: 2017-07-09 16:38:09


Hi Vinnie,
hi folks,

this is my first review, so please bear with me ...

Am 01.07.2017 um 09:39 schrieb Michael Caisse via Boost:> The formal
review of Vinnie Falco’s Beast library will take place from> July 1
through July 10, 2017.
I recommend to ACCEPT Beast into Boost
> - What is your evaluation of the design?

I like it because
 * it resembles ASIO which I am quite familiar with
 * it is focused on what it tries to accomplish
 * it clearly states it's dependency on Boost.ASIO with the strong
emphasis on migrating to Networking TS when this becomes a thing

That said, I agree on the opinion which other reviewers already stated
on that it lacks some convenience helper functions when it comes to
draining or construction of requests. I'd love to see those added to the
library.

> - What is your evaluation of the implementation?

I didn't dig too deep into it but took a first cursory look at all files
before doing anything useful with Beast. Lateron when playing with the
library I looked into the bowels of some classes or functions to
understand what I might have done wrong and fix my mistakes.

I ran the full test-suite in my usual configuration quadrupel
(debug/release + 32/64 bit) at warning level 4 in non-permissive mode
using msvc 14.1 from VisualStudio 2017.2, all four tests passed with the
same results (unlike a couple of other Boost libraries). I noticed the
things, though:

 * Beast's zlib emits a few harmless but stupid warnings C4127
"conditional expression is constant" (Microsoft, get rid of them!) and
quite some narrowing warnings C4244. These need some cleansing before we
can use Beast in our team because of our /W4 /WX policy.

 * Beast's test-suite uses the deprecated Boost.Coroutine library which
leads to deprecation warnings

 * there is an error in the Jamfile of the test-suite which creates a
truncated compiler options that msvc complains about (this is already
rectified in a later commit, though)

> - What is your evaluation of the documentation?

I like it a lot. It seems to be complete and sufficiently detailed so
that I didn't have to reach out too often to aunt Goo to find an answer
to my questions. I am missing some examples on how to use some of these
constructs in real life. For example I haven't figured out yet how to
use buffer_cat to build a request body from a mixture of different
buffer types.

> - What is your evaluation of the potential usefulness of the library?

It's very useful. From my perspective it make my life easier as it
provides just those tools that I require to deal with simple HTTP messages.

Besides the usefulness of it's own I'd love to see some higher level
library which implements the finer parts needed by HTTP clients.

> - Did you try to use the library? With which compiler(s)? Did you> have any problems?

I've set up a small toy project using msvc 14.1, Boost 1.64.0, and our
team's build system. It interrogates a SOAP server provided by the
developers of my tv-set for the weekly betatest firmware with it's
non-predictable download URL. I didn't implement the actual download so
far because Beast's file_body is not part of the review branch.

I didn't encounter any major problems.

> - How much effort did you put into your evaluation? A glance? A quick> reading? In-depth study?

In total I spent about 15 hours in the past two days studying the
documentation, running the test-suite, compiling the examples, and
implementing my toy-project.

> - Are you knowledgeable about the problem domain?
Barely - just enough understanding about the basics of HTTP messages and
using them to talk to (embedded) HTTP servers. I am just a humble user
of these things.

Ciao
  Dani


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