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!