-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Vinnie Falco Sent: 23 September 2016 15:58 To: boost@lists.boost.org Subject: [boost] [beast] Request for Discussion
Beast provides low level HTTP and WebSocket interfaces built on Boost.Asio, the project is here: https://github.com/vinniefalco/Beast The plan is to solicit feedback from the Boost community before submitting a request for a formal review.
First a brief update: I have attended CppCon 2016 and provided a 15 minute Lightning Talk on the library.
One point brought up during the conference is that Beast does not offer sufficient higher level HTTP functionality. This omission is intentional. It is my idea to offer the building blocks (serializing and deserializing HTTP/1 messages, in synchronous and asynchronous flavors, and a universal HTTP message model), upon which other developers more knowledgeable than me could build those interfaces.
<big snip> I'm not an expert on the subject, but I think you are right to be cautious about trying to be everything to all men. I think you should propose what you have now for formal review. And provide as many *examples* as possible of how it can be used. If people decide to ask you to extend the features in future, you (or others) can, but you are persuasive that premature 'standardization' sounds risky. (C++ Standards people really like to have implementation, and widespread usage. Fancier features can be added in later years - provided you have got the basics right!)
This is why I think that offering a HTTP client is a rabbit hole which can only lead to a rejected formal review. Or maybe I am overthinking this? I'd love to hear proposed solutions to the issues (which could be just to say "forget about those features").
Despite my objection I have started work on these features anyway. Here are the beginnings of a HTTP client: https://github.com/vinniefalco/Beast/blob/88b485df7e6216282842f40cf99cc75dee...
Here is some work on a generic server: https://github.com/vinniefalco/Beast/blob/server/extras/beast/http/async_ser...
These may well provide more *examples* of how to use the 'basic' features. HTH Paul --- Paul A. Bristow Prizet Farmhouse Kendal UK LA8 8AB +44 (0) 1539 561830