beast
beast copied to clipboard
HTTP and WebSocket built on Boost.Asio in C++11
This will make it easier to reason about code and also solve the problem where consume() does nothing when the first buffer is empty.
This function could be used in the message-oriented `read` overloads to clear the message before use, eliminating a common class of user errors. The signature could accept a variable argument...
Bikeshedding: ``` v10, v11 ver10, ver11 version_1_0, version_1_1 ``` Or maybe have all of them, users can choose.
The brief for all functions should read "@brief The @c foo function is a composed asynchronous operation that writes a certain amount of data to a stream before completion." for...
The overloads of `http::write` and `http::async_write` for doing direct win32 file transfers are skipped when using `beast::basic_stream`, because the socket type does not match. I'm not sure this optimization is...
Currently servers that want full control over accepting a websocket upgrade have to: 1. read the upgrade request themselves using `http::read` 2. use `websocket::is_upgrade` to determine if the message contains...
We need dedicated interface like `async_write_some_file` which calls the natively-enhanced algorithms (such as using `::TransmitFile` on Windows, or `::sendfile` on POSIX). This will eliminate users' uncertainty of whether or not...
The documentation around what must be validated when parsing messages is ambiguous in several cases. For example, nowhere is it documented what the behavior of `http::parser` is in the case...
Document and ensure that synchronous websocket read and write operations will not allocate memory when the permessage-deflate extension is not negotiated on an active connection.
The websocket handshaking/server doc should explain how to read the upgrade request yourself to perform filtering.