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