beast
HTTP and WebSocket built on Boost.Asio in C++11
Boost.Beast is a C++ library for building programs that communicate over HTTP and WebSocket, the two protocols that power most of the modern web. It is part of the Boost collection of C++ libraries, which are widely used in professional C++ development for tasks the standard library does not cover. Beast specifically handles the low-level details of reading and writing HTTP requests, HTTP responses, and WebSocket messages without making decisions for you about how to manage memory or threads.
The library is built on top of Boost.Asio, another Boost library that provides the underlying networking and asynchronous I/O foundation. Beast adds the HTTP and WebSocket vocabulary on top of that foundation. This means developers who already know Boost.Asio can use Beast without learning a completely different model. The same code structure works whether you are building a client that sends requests, a server that receives them, or a program that acts as both.
Beast is a header-only library, which means there is nothing to compile separately. You add the include line to your source file and your compiler picks it up directly. The only runtime dependency is OpenSSL if you need encrypted connections. Since the library gives you control over all the important details, the README explicitly notes that it is intended for programmers already comfortable with asynchronous network programming in C++. It is not designed as a high-level framework that hides complexity.
The library has been presented at multiple C++ conferences including CppCon and was independently reviewed by a security research firm in 2018. It is available through any standard Boost distribution and is documented on the official Boost website. Tests are verified against an external WebSocket compliance suite.