Boost logo

Boost :

Subject: Re: [boost] [beast] Request for Discussion
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2016-09-23 11:49:11


> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Vinnie Falco
> Sent: 23 September 2016 15:58
> To: boost_at_[hidden]
> 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/88b485df7e6216282842f40cf99cc75dee1b82d4/test/http/get.cpp#L123
>
> Here is some work on a generic server:
> https://github.com/vinniefalco/Beast/blob/server/extras/beast/http/async_server.hpp#L84

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

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