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.


 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

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++

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

Boost list run by bdawes at, gregod at, cpdaniel at, john at