Boost logo

Boost :

Subject: Re: [boost] [review][beast] Review of Beast starts today : July 1 - July 10
From: Vadim Zeitlin (vz-boost_at_[hidden])
Date: 2017-07-06 19:25:51


On Sat, 1 Jul 2017 00:39:45 -0700 Michael Caisse via Boost <boost_at_[hidden]> wrote:

MCvB> Please provide in your review whatever information you think is valuable
MCvB> to understand your final choice of ACCEPT or REJECT including Beast as a
MCvB> Boost library. Please be explicit about your decision.

 Hello,

 I'm sorry for lack of details in this review, I really hoped to find more
time to look into Beast, but it seems I'm not going to be able to do it
before the end of the review period, so I wanted to post a mini-review in
the hope that it can be better than nothing.

 The most important limitation of this review is that I've only looked at
and used WebSocket-related parts of it and have only looked superficially
at the HTTP part despite the fact that it's the major part of the library.

MCvB> - What is your evaluation of the design?

 IIUC, Beast was designed to be familiar to programmers with knowledge of
ASIO and it definitely succeeds in it. Personally, I can't say that I like
ASIO API that much, but there is no denying that Beast was much simpler to
pick up and start using immediately because it was so close to ASIO
conceptually.

MCvB> - What is your evaluation of the implementation?

 I have only glanced at it and so didn't see much, but what I saw looked
good. I definitely didn't notice anything wrong.

MCvB> - What is your evaluation of the documentation?

 Documentation is very good.

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

 WebSocket part is very useful, I think it's the best current
implementation of the WebSocket protocol for C++. I don't have any use for
the HTTP part of myself, but I sure hope it could be useful for the
creation of future, high(er) level HTTP libraries that I'd love to have.

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

 I did use the library for some tests, in order to decide whether I was
going to rewrite an exiting client/server system to use it instead of
WebSocket++ (which I finally didn't, but for the reasons that are out of
scope of this review). I used it with MSVS 2015 and g++ 6 and didn't have
any problems with either.

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

 A quick reading for the WebSocket part, at most a glance for the HTTP one.
I did spend a few hours writing small tests (client/server, sync/async,
plain/TLS) using the library.

MCvB> - Are you knowledgeable about the problem domain?

 No, not particularly, I basically just read the RFC 6455, but mostly to
just have some idea of what was going on under the hood. I didn't have to
really know much about it in order to use Beast, which is a very good
thing, of course.

 To finish this mini (micro?) review, I think that Beast should be accepted
into Boost if only for the WebSocket part. It both looks very good to me on
its own merits and in comparison with WebSocket++, which is, I think, the
only viable alternative for writing cross-platform clients/servers in C++
currently.

 Thanks a lot to the author for his work and dedication!
VZ




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