en	Release Notes

en	Boost 1.91

en	* [issue 3066] Fixed typecast warnings in `inflate_with_eb`

en	* [issue 3077] Enforced 8KB sanity limit on chunk headers * [issue 3085] Made OpenSSL an optional dependency for tests * [issue 3074] Removed dependency on Boost.StaticAssert * [issue 3091] Added `HTTP2-Settings` to HTTP field enum

en	Boost 1.90

en	* [issue 3042] `http::parser` rejects non-standard trailer fields by default.

en	* [issue 3042] `http::basic_parser` uses a dedicated callback for trailer fields.

en	* [issue 3042] `http::field` constants are updated.

en	* [issue 3034] Fixed allocator move/copy assignment in `flat_buffer` and `multi_buffer` * [issue 3028] Fixed websocket permessage-deflate error on partial message consumption * [issue 3032] `http::buffer_body` ignores empty chunks

en	* [issue 3039] Added `http::basic_fields::contains` member function * [issue 3050] Removed dependency on Boost.Preprocessor * [issue 3048] Removed dependency on Boost.StaticAssert

en	Boost 1.89

en	* [issue 3002] Conditionally defined `immediate_executor_type` in `async_base` * [issue 2999] Used `handshake_timeout` for closing handshake during read operations * [issue 3003] Added missing `cstdint` header to `detail/cpu_info.hpp` * [issue 3016] Fixed `std::is_trivial` deprecation warnings * [issue 3019] Fixed `-Wmaybe-uninitialized` warnings

en	* [issue 3005] Replaced `detail/work_guard.hpp` with `net::executor_work_guard` * [issue 3016] Fixed portability issues for building tests in MinGW

en	* [issue 3009] Removed moved sections from documentation * [issue 3009] Removed superfluous log messages from tests

en	Boost 1.88

en	* [issue 2962] Fixed out-of-bounds access in `iequals` function

en	* [issue 2974] Updated SSL examples to verify peer certificate hostname * [issue 2954] Refactored CMakeLists * [issue 2955] Removed Boost.Scope dependency from examples * [issue 2716] WebSockets: Peer pings are counted as activity for `idle_timeout`

en	* [issue 2918] Added new examples for Unix domain sockets * [issue 2910] Added SSL/TLS Certificate section to documentation * [issue 2730] Improved documentation of `websocket::stream::async_close`

en	Boost 1.87

en	* [issue 2920] Added `error_code` overload for `basic_fields::insert()` * [issue 2911] Added overload for `websocket::stream::get_status` to query permessage-deflate status

en	* [issue 2926] Fixed use-after-move in calls to `net::dispatch` within `http::basic_stream`, which caused `bad_executor` exceptions on timeouts * [issue 2915] Removed mutating operations in initiating functions * [issue 2915] Fixed cancellation handling in `teardown_tcp_op` * [issue 2920] Set `state_` in `basic_parser` before calling `on_finish_impl` * [issue 2939] Removed static specifier from `clamp` functions * [issue 2903] Addressed `-Wattributes` warnings in tests * [issue 2944] Addressed unreachable code warning in tests

en	* [issue 2940] Added forward declaration headers for types in `beast::http` namespace * [issue 2920] Enabled `http::parser` to use `basic_fields::insert()` with `error_code` overload * [issue 2920] Applied `header_limit_` in `http::basic_parser` to trailer headers * [issue 2920] Improved `http::basic_parser` to return `http::error::header_limit` earlier * [issue 2905] Added support for modular boost build structure

en	Boost 1.86

en	* [issue 2878] Added HTTP status code *418 I'm a teapot*

en	* [issue 2879] Narrowing conversion in `read_size_hint_db()` * [issue 2893] Overloads that are ambiguous when using default completion tokens * [issue 2517] Misplaced static_assert in `http::basic_fields` move-assignment operator * [issue 2880] Underflow of `bytes_transferred` in WebSocket partial write operations * [issue 2879] `websocket::stream::read_size_hint()` does not exceed `read_message_max` * [issue 2877] Various warnings in tests * [issue 2872] Error handling in SSL shutdown operations in examples * [issue 2869] Annotate fallthrough case in zlib * [issue 2866] Handling of expired timers in `basic_stream::ops::transfer_op` * [issue 2864] Ambiguity in `test::basic_stream` constructor overloads * [issue 2861] Partial parsing of the final chunk in `http::parser`

en	* [issue 2897] Graceful shutdown in `server_flex_awaitable` example * [issue 2897] Simplified awaitable examples * [issue 2888] Added fuzzing targets * [issue 2875] Removed superfluous uses of `std::bind` in some examples * [issue 2875] `ssl_stream` does not use `flat_stream`

en	* [issue 2875] `ssl_stream` and `flat_stream` marked as deprecated * [issue 2875] `net::ssl::stream` is canonical in snippets and examples * [issue 2872] Added `SSL/TLS Shutdown Procedure` section

en	Boost 1.85

en	* [issue 2811] The status code list has been updated to conform with the IANA registry

en	* [issue 2803] Unreachable code warning in `buffers_cat.hpp` * [issue 2778] Connection error handling in `websocker_server_awaitable` example * [issue 2739] Concurrent calls to `async_write` in advanced server examples * [issue 2810] zlib name conflicts with minizip * [issue 2818] host string should be updated after `SSL_set_tlsext_host_name()`

en	* [issue 2782] `asio::associator` is specialized for `bind_wrapper` and `bind_front_wrapper` * [issue 2646] Add non-allocating overload for error category message function

en	* [issue 2789] Specifies when calling `http::message::prepare_payload()` is optional * [issue 2799] Operations affected by `basic_stream::expires_after()` * [issue 2808] `teardown()` and `async_teardown()` are customization points * [issue 2814] Moving or copying `http::serializer` after first usage is undefined behaviour * [issue 2817] `websocket::permessage_deflate` should be configured before performing the WebSocket handshake * [issue 2816] `bytes_transferred` in http reads operations reports the number of bytes consumed by the HTTP parser

en	Boost 1.84

en	* Remove deprecated allocation and invocation hooks

en	* Support for `immediate_executor`

en	* [issue 2766] Use the explicit type std::size_t when completing transfer_op * [issue 2727] Replaced `BOOST_ASIO_INITFN_RESULT_TYPE` with `BOOST_ASIO_INITFN_AUTO_RES` * [issue 2715] `server-flex-awaitable` example resets parser

en	* [issue 2713] Corrected the `websocket::stream::async_ping/pong` handler requirement * [issue 2755] Update documentation for `websocket::stream::async_write_some`

en	Boost 1.83

en	* [issue 2680] aligned_storage unused for C+23 * [issue 2653] MSVC literal `not` error * [issue 2661] ssl_stream ambiguity error on clang * [issue 2649] Jamefile uses openssl.jam

en	Boost 1.82

en	* [issue 2475] Add `error_code`s use source_location

en	* [issue 2602] tcp_stream uses the correct executor of the timer. * [issue 2638] `std::placeholders` ambiguity fix.

en	* error_categories use numeric ids * `file_body` support seek

en	Boost 1.81

en	* Add `buffers_generator` * Add [link beast.ref.boost__beast__http__message_generator `http::message_generator`] * Add [link beast.ref.boost__beast__buffer_ref `buffer_ref`] * Support for per-operation cancellation

en	* [issue 2439] Fix CVE-2018-25032 in zlib streams * [issue 264] Websocket support continue in upgrade * [issue 471] Unquote takes s by reference

en	* [issue 2104] C++20 awaitable examples. * [issue 226], [issue 227] per-message compression options * [issue 2449] websocket timeout option api * [issue 2468] multiple content length error

en	* Use `span` from Boost.Core * Use `static_string` from Boost.StaticString * `serializer::is_done` is `const` * Support for default-completion and rebind * [issue 2469] s390x architecture support

en	* [issue 891] Feature table for buffers * [issue 516] Case-insensitivity for fields is stated * [issue 298] api version is documented

en	Boost 1.80

en	* [issue 2363] Remove `BOOST_BEAST_USE_STD_STRING_VIEW` * [issue 2417] use boost::core::string_view. This improves inter-conversion between string_view implementations. Some observable differences for users:

en	Boost 1.79

en	* [issue 2391] Add missing include for file_body test. * [issue 2364] Fix WebSocket handshake response on failure. * [issue 2280] (related) Fix open append mode for file_posix. * [issue 2280] Fix open append mode for file_win32. * [issue 2280] Fix file open with append/append_existing flag on Windows * [issue 2354] Fix clang-cl UTF8 path handling for `file_win32`. * [issue 2354] Fix clang-cl UTF8 path handling for `file_stdio`.

en	* [issue 2375] Add ARM64 builds to drone CI * [issue 2217] Fix async_base documentation link * [issue 2280] Add tests for file open in append/append_existing mode * [issue 2351] Update CI to include gcc 11, clang 12, msvc 14.3 * [issue 2350] Add individual tests to CMake workflow

en	Boost 1.78

en	* Fix CVE-2016-9840 in zlib implementation. * Fix TLS SNI handling in websocket_client_async_ssl example. * [issue 2313] Fix reuse of sliding window in WebSocket permessage_deflate. * Fix accept error handling in http_server_async example.

en	* Remove test framework's dependency on RTTI. * Move library-specific docca configuration to Beast. * Remove dependency on RTTI in `test::stream`. * Fix missing includes in test headers.

en	Boost 1.77

en	* [issue 2233] Remove use of POSIX-only constant.

en	* Fixes to tests. * Improvements and fixes in Github and Drone CI. * Accommodate Docca updates. * Update example root certificates. * Add example of reading large response body. * Remove Travis CI. * Update CMakeLists.txt

en	Boost 1.76

en	* [issue 2139] Add executor rebind to test::stream. * Fix unused variable compiler warning in WebSocket async shutdown.

en	* [issue 2124] Floating point support no longer required to use Beast. * Reduce size of websockety compiled code by using a common buffers type for all operations. * HTTP Parser has improved detection of incorrect use.

en	* [issue 2140] Add cxxstd tag to library metadata. * Move to Drone CI. * Minor documentation formatting improvements. * CML now finds required Boost::thread library during in-tree build.

en	Boost 1.75

en	* Eliminate spurious unused parameter warning in `detect_ssl`. * Update Websocket examples to set the SNI for TLS connections. * [issue 2023] websocket async_shutdown will now shutdown the underlying TLS transport. * [issue 2011] File open with append_existing flag now works correctly in posix environments. * [issue 2039] Windows builds now link to bcrypt as required by the filesystem library. * [issue 2063] Logic error fixed in `advanced_server_flex` example. * [issue 1582] Fix unreachable code error on MSVC. * [issue 2070] Fix http body behaviour when body_limit it none. * [issue 2065] Fix behaviour of `basic_stream` when a zero-length write is requested. * [issue 2080] Add enums representing Sec-* HTTP headers. * [issue 2085] Fix `nullptr` implicit cast on `fields::set()`. * [issue 2029] Fix C++20 tests for `basic_stream`.

en	* Add handler tracking to asynchronous operations:

en	* Add Bishop-Fox 2020 Security Assessment.

en	Boost 1.74

en	* The API to Asio has undergone changes. Please refer to the Asio release notes for details.

en	* Beast has been updated to track and respect developer choices in the use of Asio. In particular:

en	* [issue 1897] Parser `body_limit` is optional (API Change)

en	* [issue 1934] Remove deprecated interfaces (API Change)

en	* [issue 1956] Deprecate `string_param` (API Change)

en	* [issue 1913] Fix standalone compilation error with `std::string_view` * [issue 1925] [issue 1916] Fix compile errors on Visual Studio with /std:c++latest * [issue 1924] Fix c++20 deprecation warning in `span_body` * [issue 1920] Fix use `buffered_read_stream` with `use_awaitable` * [issue 1918] Fix `async_detect_ssl` with `use_awaitable` * [issue 1944] Fix `FILE` namespace qualification * [issue 1942] Fix http read `bytes_transferred` * [issue 1943] Fix `basic_stream` `expires_after` * [issue 1980] Fix `max` compile error * [issue 1949] `iless` and `iequal` take part in Heterogeneous Lookup

en	* [issue 1907] OpenSSL 1.0.2 or later is required when using SSL/TLS streams.

en	* Additional tests have been added to ensure correct integration with C++20

en	Boost 1.73

en	* Nested `mutable_data_type` in Beast dynamic buffers is deprecated. Affected types:

en	* Use nested `mutable_buffers_type` instead of `mutable_data_type`,

en	* Update root certificates in examples

en	* [issue 1880] Fix Content-Length parsing * [issue 1852] Fix examples to dispatch to strand * [issue 1875] Ensure `basic_stream::close` will not throw * [issue 1863] Field digest is endian-independent * [issue 1853] Fix ostream flush * [issue 1831] `flat_buffer::shrink_to_fit` is `noexcept` * [issue 1828] Fix erase field * [issue 1822] Examples use strands correctly * [issue 1818] `file_body` returns `short_read` on eof during read * [issue 1786] Fix bug in win32 `file_body` * [issue 1260] Add accessor function to File member of `basic_file_body` * [issue 793] `file_win32` supports UTF-8 paths * [issue 793] `file_stdio` supports unicode paths * [issue 1786] `file_win32` bodies respect `http::serializer::split` * Correct `buffer_bytes` documentation * Fix missing include in sha1.hpp * Fix ostream warning * Update broken links in README * Translate some win32 errors to net error codes * Moved-from dynamic buffers do not clear if different allocator * Fix compilation macro documentation * Clarify end-of-file behaviour in `File::read` docs * ostream_buffer satisfies preconditions of DynamicBuffer_v1::commit * Fix release build of docs * Fix `echo-op` test * Fix non-msvc cmake

en	Boost 1.72

en	* Add async-ssl-system-executor http client example

en	* Add async-ssl-system-executor websocket client example

en	* Async init-fns use the executor's default token

en	* Use automatically deduced return types for all async operations (since C++14)

en	* Support Concepts for completion token params

en	* [issue 1664] Add default dtors to satisfy -Wnon-virtual-dtor

en	* [issue 1682] Multiple I/O of the same type is not supported

en	* [issue 1687] Fix signed/unsigned mismatch in file_stdio::seek

en	* [issue 1688] basic_stream dtor cannot throw

en	* [issue 1734] Fix leftovers in basic_parser corner case:

en	* [issue 1751] https_get example sends the Host header

en	* [issue 1754] Fix async_close error code when async_read times out

en	* [issue 1782] root_certificates.hpp is not for production

en	* Fix data race in websocket examples

en	* Fix data race in http server examples

en	* Squelch spurious websocket timer assert

en	* Use the executor type in basic_stream timer

en	Boost 1.71

en	* [issue 1280] Add 1-element specialization for `buffers_cat`

en	* [issue 1556] Set parser status and flags even if body limit has been reached

en	* [issue 1567] Relax requirements for vector_body

en	* [issue 1568] `detect_ssl` uses `bool` instead of `tribool`

en	* [issue 1574] Replace `static_string` in HTTP parser

en	* [issue 1606] Use `steady_timer` type

en	* [issue 1611] Make chat websocket javascript client more user friendly

en	* [issue 1613] Remove redundant use of `static_string`

en	* [issue 1636] Improve performance of `http::string_to_verb`

en	* Preserve `operation_aborted` on partial message

en	* Remove unused `<experimental/unit_test/thread.hpp>`

en	* Reduce the number of instantiations of `filter_token_list`

en	* Add idle ping suspend test

en	* Remove the use of `bind_executor` in `basic_stream`

en	* Remove redundant template in service_base

en	* Remove the use of `static_string` from `http::fields`

en	* Enable split compilation in http::basic_fields

en	* Remove redundant instation of `static_string` in websocket

en	* Remove redundant use of `asio::coroutine` in `flat_stream`

en	* More split compilation in rfc7230.hpp

en	* More split compilation in websocket/detail/mask.hpp

en	* Simplify generation of sec-websocket-key

en	* [issue 1332] `allocator_traits::construct` is used for user-defined types

en	* [issue 1559] Member `get_executor` const-correctness

en	* [issue 1569] Fix `async_detect_ssl` handler type

en	* [issue 1570] Launder pointers

en	* [issue 1578] Fix min/max on MSVC

en	* [issue 1586] Fix uninitalized memory use in deflate_stream

en	* [issue 1593] Fix UB in websocket close tests

en	* [issue 1594] Fix data race in test stream

en	* [issue 1599] Fix moved-from executor in idle ping timeout

en	* [issue 1607] Remove uses of the deprecated `buffers` function

en	* [issue 1612] Remove uses of deprecated methods in websocket tests

en	* [issue 1620] Clean up typo in chat websocket javascript client

en	* [issue 1621] Fix `flat_buffer` copy members

en	* Silence gcc-8 warning

en	* Fix `buffers_cat` iterator tests

en	* Don't pessimize-move

en	* Qualify calls to `beast::iequals` in basic_parser.ipp

en	* Fix UB in websocket read tests

en	* Simplify websocket::detail::prng

en	* Don't over-allocate in http::basic_fields

en	* Documentation is built with SaxonHE instead of xsltproc

en	Boost 1.70

en	The namespace alias `net` is used throughout for `boost::asio`.

en	* All composed operations use the new

en	* New `tcp_stream` and

en	* `websocket::stream`

en	* [link beast.ref.boost__beast__ssl_stream `ssl_stream`]

en	* ([issue 1305]) Better

en	* ([issue 1345]) Better

en	* ([issue 1384]) New functions

en	* Better

en	* Faster

en	* Dynamic buffer `clear` operations perserve capacity.

en	* New file <boost/beast/core/buffer_traits.hpp>

en	* New classes

en	* New

en	* New:

en	* These interfaces are now public (were experimental):

en	* Websocket streams use PCG as the fast random number generator,

en	* WebSocket reference documentation is revised

en	* Updated [link beast.using_io.asio_refresher Networking Refresher]

en	* Revised [link beast.using_io.writing_composed_operations.echo Asynchronous Echo]

en	* Rewritten [link beast.using_io.writing_composed_operations.detect_ssl [*Detect SSL Handshake]]

en	* The __Fields__ concept is deprecated and will be removed

en	* `handler_ptr` is deprecated. ['Actions Required]: Use

en	* On Windows, Visual Studio 2017 or later is required

en	* OpenSSL is required to build the examples and tests

en	* HTTP stream algorithms return the number of bytes transferred

en	* Metafunctions

en	* `basic_parser`

en	* Metafunction

en	* `flat_static_buffer::reset()`

en	* `buffers_adapter` is spelled

en	* `buffers` is spelled

en	* `file_mode::append_new` is removed, as it makes no sense.

en	* `role_type` is moved from `websocket` to `beast`

en	* `buffers_range_ref`

en	* Nested `lowest_layer` and `lowest_layer_type` are removed.

en	* WebSocket decorator is a socket option:

en	* ([issue 1375]) The value returned from `basic_parser::content_length`

en	* All example programs are updated:

en	* ([issue 1100]) http-crawl clears the response before each read

en	* ([issue 1347]) echo-op is rewritten

en	* ([issue 1401]) Examples use

en	* Advanced servers use HTTP parser interfaces for reading

en	* detect-ssl is rewritten

en	* New example [path_link example/websocket/server/chat-multi example/websocket/server/chat-multi]

en	* `async_echo` works with move-only handlers

en	* cppcon2018 example is removed

en	* ([issue 38]) Better treatment of SSL short reads

en	* ([issue 1223]) HTTP read counts bytes correctly when an error occurs

en	* ([issue 1247]) Update `ssl_stream`

en	* ([issue 1279]) Enable explicit instantiations of

en	* ([issue 1290]) Don't use deprecated Asio interfaces

en	* ([issue 1306]) `http::message`

en	* ([issue 1306]) `test::stream`

en	* ([issue 1358]) Destroy abandoned websocket ops on shutdown

en	* ([issue 1365]) Handler wrappers decay parameters sooner

en	* ([issue 1408]) `session_alloc`

en	* ([issue 1414]) Boost.System is header-only

en	* ([issue 1418]) `test::stream`

en	* ([issue 1445]) Fix posix_file::close handling of EINTR

en	* ([issue 1460]) Large WebSocket Upgrade response no longer overflows

en	* Reusing an HTTP parser returns an error

en	* Handler bind wrappers use the associated allocator

en	* `buffers_cat`

en	* `ostream`

en	* Fixes to

en	* `file_mode::append_existing`

en	* A handler work guard is maintained on paused websocket operations

en	* All behavior of default-constructed iterators is conforming

en	Boost 1.69

en	* ([issue 1133]) Add `BOOST_BEAST_USE_STD_STRING_VIEW`

en	* New WebSocket server and browser-based client: example/cppcon2018

en	* ([issue 1245]) Fix a rare case of incorrect UTF8 validation

en	* ([issue 1237]) Verify certificates in client examples

en	* ([issue 1233]) Use [@boost:/doc/html/core/empty_value.html `boost::empty_value`]

en	* ([issue 1091]) Fix timer on websocket upgrade in examples

en	* ([issue 1270]) [link beast.ref.boost__beast__http__basic_fields `basic_fields`] uses intrusive base hooks

en	* ([issue 1267]) Fix parsing of out-of-bounds hex values

en	* ([issue 1263]) Fix uninitialized comparison in buffers iterator

en	* ([issue 1288]) Remove extraneous strand from example

en	* Workaround for http-server-fast and libstdc++

en	* Partial support for `BOOST_NO_EXCEPTIONS`

en	* Add `timeout_socket`

en	Boost 1.68

en	This version fixes a missing executor work guard in all composed operations used in the implementation. Users who are experiencing crashes related to asynchronous completion handlers are encouraged to upgrade. Also included is an improved mechanism for generating random numbers used to mask outgoing websocket frames when operating in the client mode. This resolves a vulnerability described in the Beast Hybrid Assessment Report from Bishop Fox.

en	The include directory `<beast/experimental>` contains features which are not part of the stable public interface but are available anyway. They may change in future versions.

en	* ([issue 1108]) New [link beast.ref.boost__beast__flat_stream `flat_stream`] for working around an SSL stream performance limitation

en	* ([issue 1151], [issue 595]) New [link beast.ref.boost__beast__http__icy_stream `http::icy_stream`] stream filter allows parsing ICY HTTP response handshakes

en	* New [link beast.ref.boost__beast__ssl_stream `ssl_stream`] for better SSL performance and move constructability

en	* New

en	* New [link beast.ref.boost__beast__http__is_mutable_body_writer `http::is_mutable_body_writer`] metafunction

en	* New [link beast.ref.boost__beast__websocket__seed_prng `websocket::seed_prng`] for manually providing entropy to the PRNG

en	* New [link beast.ref.boost__beast__websocket__stream.secure_prng `websocket::stream::secure_prng`] to control whether the connection uses a secure PRNG

en	* Generated WebSocket masks use a secure PRNG by default

en	* Improvements to [link beast.ref.boost__beast__buffers_adaptor `buffers_adaptor`]

en	* ([issue 1188]) Set "/permissive-" for MSVC builds

en	* ([issue 1109]) Use a shared string for example HTTP server doc roots

en	* ([issue 1079]) Add `handler_ptr::has_value`

en	* ([issue 1073]) Fix race in advanced server examples

en	* ([issue 1076]) Use executor_work_guard in composed operations

en	* ([issue 1079]) Remove spurious assert

en	* ([issue 1113]) Add `const` and non-`const` overloads for message based HTTP writes

en	* ([issue 1119]) Fix unused variable warning

en	* ([issue 1121]) Examples use the root certificate which matches the fingerprint

en	* ([issue 1141]) Tidy up composed operation doc

en	* ([issue 1186]) Check error in example set_option

en	* ([issue 1210]) Fix http_server_stackless_ssl.cpp example

en	* ([issue 1211]) Fix parse_dec algorithm

en	* ([issue 1214]) Silence ubsan false positive

en	* Tidy up websocket stream javadocs

en	* Fix move-only arguments in [link beast.ref.boost__beast__bind_handler `bind_handler`]

en	* Fix [link beast.ref.boost__beast__http__parser `http::parser`] constructor javadoc

en	* Fix [link beast.ref.boost__beast__buffers_adaptor `buffers_adaptor`] iterator value type

en	* Fix [link beast.ref.boost__beast__buffers_adaptor.max_size `buffers_adaptor::max_size`]

en	* Fix [link beast.ref.boost__beast__buffers_prefix `buffers_prefix`] iterator decrement

en	* Fix __Fields__, __FieldsWriter__ concept docs

en	* Fix __BodyReader__ constructor requirements doc

en	* Remove deprecated `serializer::reader_impl`

en	* Remove deprecated __Body__ `reader` and `writer` ctor signatures

en	Boost 1.67

en	This version fixes significant defects in [link beast.ref.boost__beast__websocket__stream `websocket::stream`] which can lead to asserts or undefined behavior. Users are encouraged to update to the latest Boost release.

en	* Move-only completion handlers are supported throughout the library

en	* ([issue 899]) Advanced server examples support idle websocket pings and timeouts

en	* ([issue 849]) WebSocket permessage-deflate support is now a compile-time

en	* ([issue 949]) WebSocket error codes are revised. New

en	* ([issue 857])

en	* ([issue 894])

en	* Implementation no longer uses deprecated `asio::null_buffers`

en	* Add [include_file boost/beast/websocket/stream_fwd.hpp]

en	* ([issue 955]) The asynchronous SSL detector example uses a stackless coroutine

en	* [link beast.ref.boost__beast__bind_handler `bind_handler`]

en	* Examples set `reuse_address(true)`

en	* ([issue 1026]) Advanced servers support clean shutdown via SIGINT or SIGTERM

en	* Some basic_fields operations now give the strong exception guarantee

en	* Fix "warning: ‘const’ type qualifier on return type has no effect"

en	* ([issue 916]) Tidy up `ssl_stream` special members

en	* ([issue 918]) Calls to `<algorithm>` are protected from macros

en	* ([issue 954]) The control callback is invoked on the proper executor

en	* ([issue 994]) Fix iterator version of

en	* ([issue 992]) Fix use-after-move in example request handlers

en	* ([issue 988]) Type check completion handlers

en	* ([issue 985]) Tidy up

en	* Fix memory leak in advanced server examples

en	* ([issue 1000]) Fix soft-mutex assert in websocket stream.

en	* ([issue 1019]) Fix fallthrough warnings

en	* ([issue 1024]) Fix teardown for TIME_WAIT

en	* ([issue 1030]) Fix big-endian websocket masking

en	* Safe treatment of zero-length string arguments in basic_fields

en	* ([issue 1043]) Examples clear the HTTP message before reading

en	* ([issue 1012]) Add asio_handler_invoke overloads for stream algorithms

en	* Add Access-Control-Expose-Headers field constant

en	* Remove unintended public members of

en	* `handler_ptr`

en	* `handler_ptr`

en	* ([issue 896])

en	* [link beast.ref.boost__beast__http__parser `http::parser`]

en	* ([issue 930]) `http::serializer::reader_impl` is deprecated and will

en	* ([issue 884]) The __BodyReader__ and __BodyWriter__ concept constructor

en	* [link beast.ref.boost__beast__websocket__stream.control_callback `websocket::stream::control_callback`]

en	* ([issue 1014]) DynamicBuffer input areas are not mutable.

en	* ([issue 941]) `get_lowest_layer` is now a type alias.

en	Boost 1.66

en	* Initial release