forked from boostorg/beast
Update interim release notes
This commit is contained in:
@@ -134,7 +134,9 @@
|
|||||||
[import ../../test/doc/core_3_layers.cpp]
|
[import ../../test/doc/core_3_layers.cpp]
|
||||||
|
|
||||||
[section:quickref Reference]
|
[section:quickref Reference]
|
||||||
<emphasis role="green">🞲</emphasis> indicates item is new in this version.
|
'''
|
||||||
|
<emphasis role="green">🞲</emphasis> indicates an item that is new in this version.
|
||||||
|
'''
|
||||||
[xinclude quickref.xml]
|
[xinclude quickref.xml]
|
||||||
[endsect]
|
[endsect]
|
||||||
[block'''<reference id="beast_hidden"><title>This Page Intentionally Left Blank 1/2</title>''']
|
[block'''<reference id="beast_hidden"><title>This Page Intentionally Left Blank 1/2</title>''']
|
||||||
|
@@ -8,7 +8,6 @@
|
|||||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
Official repository: https://github.com/boostorg/beast
|
Official repository: https://github.com/boostorg/beast
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<informaltable frame="all">
|
<informaltable frame="all">
|
||||||
|
@@ -9,9 +9,158 @@
|
|||||||
|
|
||||||
[section Release Notes]
|
[section Release Notes]
|
||||||
|
|
||||||
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
|
[heading Boost 1.70]
|
||||||
|
[/ includes up to version 209]
|
||||||
|
[/
|
||||||
|
Exposition:
|
||||||
|
Enlarged scope
|
||||||
|
New quality of life features:
|
||||||
|
timed stream
|
||||||
|
async_op_base, stable_async_op_base
|
||||||
|
New Networking refresher
|
||||||
|
New websocket-chat-multi example
|
||||||
|
* `net` is a namespace alias for `boost::asio`
|
||||||
|
]
|
||||||
|
|
||||||
|
[tip
|
||||||
|
The namespace alias `net` is now used throughout for `boost::asio`.
|
||||||
|
]
|
||||||
|
|
||||||
|
[*New Features]
|
||||||
|
|
||||||
|
[/* `BASIC_TIMEOUT_STREAM` TODO]
|
||||||
|
|
||||||
|
* ([issue 1305]) Better `flat_buffer`, `flat_static_buffer`, `multi_buffer`, and `static_buffer`:
|
||||||
|
* Revise all reference documentation
|
||||||
|
* Move construction does not always invalidate buffers
|
||||||
|
* non-const `data()` returns a mutable buffer sequence
|
||||||
|
* Add `cdata()` to also return constant readable bytes
|
||||||
|
* Eligible member functions are declared `noexcept`
|
||||||
|
|
||||||
|
* ([issue 1345]) Better `flat_buffer`, `multi_buffer`
|
||||||
|
* Add `reserve()`, `max_size()`, `shrink_to_fit()`
|
||||||
|
* Respect Allocator `max_size()`
|
||||||
|
* Specify exception safety
|
||||||
|
|
||||||
|
* ([issue 1384]) New functions `bind_back_handler`, `bind_front_handler`
|
||||||
|
|
||||||
|
* Better `static_buffer`, `flat_static_buffer`
|
||||||
|
* Add `clear()`
|
||||||
|
* More members are `noexcept`
|
||||||
|
* Specify exception safety
|
||||||
|
|
||||||
|
* Faster `http::string_to_field`
|
||||||
|
|
||||||
|
* New file <boost/beast/core/buffer_type.hpp>
|
||||||
|
* New variadic `is_const_buffer_sequence`
|
||||||
|
* New variadic `is_mutable_buffer_sequence`
|
||||||
|
* New `buffers_iterator_type` trait
|
||||||
|
* New `buffers_type` trait
|
||||||
|
|
||||||
|
* New classes `async_op_base` and `stable_async_op_base`
|
||||||
|
* Handle boilerplate for writing composed operations
|
||||||
|
* New `allocate_stable` is preferred over `handler_ptr`
|
||||||
|
|
||||||
|
* New `buffer_size` replacement for `net::buffer_size`
|
||||||
|
|
||||||
|
* New:
|
||||||
|
* `saved_handler`
|
||||||
|
* `buffers_range_ref`
|
||||||
|
* `dynamic_buffer_ref`
|
||||||
|
* `get_lowest_layer` and `lowest_layer_type`
|
||||||
|
* `close_socket` and `beast_close_socket`
|
||||||
|
* `error` and `condition`
|
||||||
|
|
||||||
|
[*API Changes]
|
||||||
|
|
||||||
|
* HTTP stream algorithms return the number of bytes transferred
|
||||||
|
from the stream. Previously, they returned the number of bytes
|
||||||
|
consumed by the parser.
|
||||||
|
['Actions Required]:
|
||||||
|
* Callers depending on the return value of `http::read` or
|
||||||
|
`http::async_read` overloads should adjust the usage of
|
||||||
|
the returned value as needed.
|
||||||
|
|
||||||
|
* `flat_static_buffer::reset()` is deprecated.
|
||||||
|
['Actions Required]:
|
||||||
|
* call `clear()` instead.
|
||||||
|
|
||||||
|
* `buffers_adapter` is now called `buffers_adaptor`.
|
||||||
|
['Actions Required]:
|
||||||
|
* Replace `buffers_adapter` with `buffers_adaptor`, or define
|
||||||
|
`BOOST_BEAST_ALLOW_DEPRECATED`.
|
||||||
|
|
||||||
|
* `buffers` is now called `make_printable`.
|
||||||
|
['Actions Required]:
|
||||||
|
* Replace `buffers` with `make_printable`, and include
|
||||||
|
"make_printable.hpp" instead of "ostream.hpp".
|
||||||
|
|
||||||
|
* `file_mode::append_new` is removed, as it makes no sense.
|
||||||
|
['Actions Required]:
|
||||||
|
- Replace `file_mode::append_new` with either `file_mode::append`
|
||||||
|
or `file_mode::append_existing` as needed.
|
||||||
|
|
||||||
|
* `buffers_range_ref` is preferred to `std::reference_wrapper`.
|
||||||
|
['Actions Required]:
|
||||||
|
- Call `buffers_range_ref` with the buffer, instead of calling
|
||||||
|
`buffers_range` with a reference wrapper constructed from
|
||||||
|
the buffer.
|
||||||
|
|
||||||
|
* Nested `lowest_layer` and `lowest_layer_type` are removed.
|
||||||
|
['Actions Required]: Use the free function `get_lowest_layer` and the
|
||||||
|
type trait `lowest_layer_type` instead.
|
||||||
|
|
||||||
|
[*Examples]
|
||||||
|
|
||||||
|
* ([issue 1100]) http-crawl clears the response before each read
|
||||||
|
|
||||||
|
* ([issue 1347]) Improve echo-op
|
||||||
|
|
||||||
|
* ([issue 1401]) Examples use `flat_buffer`
|
||||||
|
|
||||||
|
* New websocket-chat-multi example
|
||||||
|
|
||||||
|
* `async_echo` works with move-only handlers
|
||||||
|
|
||||||
|
[*Fixes]
|
||||||
|
|
||||||
|
* ([issue 1223]) HTTP read counts bytes correctly when an error occurs
|
||||||
|
|
||||||
|
* ([issue 1247]) Update `ssl_stream` for Asio changes
|
||||||
|
|
||||||
|
* ([issue 1279]) Enable explicit instantiations of `websocket::stream`
|
||||||
|
|
||||||
|
* ([issue 1290]) Don't use deprecated Asio interfaces
|
||||||
|
|
||||||
|
* ([issue 1306]) `http::message` is not-a `boost::empty_value`
|
||||||
|
|
||||||
|
* ([issue 1306]) `test::stream` has fewer dependencies
|
||||||
|
|
||||||
|
* ([issue 1365]) Handler wrappers decay parameters sooner
|
||||||
|
|
||||||
|
* ([issue 1408]) `session_alloc` is thread-safe
|
||||||
|
|
||||||
|
* ([issue 1414]) Boost.System is header-only
|
||||||
|
|
||||||
|
* ([issue 1418]) `test::stream` maintains a handler work guard
|
||||||
|
|
||||||
|
* `buffers_cat` correctly skips empty buffers when iterated
|
||||||
|
|
||||||
|
* `ostream` does not overflow or exceed the dynamic buffer's maximum size
|
||||||
|
|
||||||
|
* A handler work guard is maintained on paused websocket operations
|
||||||
|
|
||||||
|
* All behavior of default-constructed iterators is conforming
|
||||||
|
|
||||||
|
* `file_mode::append_existing` works correctly
|
||||||
|
|
||||||
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
[heading Boost 1.69]
|
[heading Boost 1.69]
|
||||||
|
|
||||||
[* New Videos]
|
[*New Videos]
|
||||||
|
|
||||||
[block'''
|
[block'''
|
||||||
<mediaobject>
|
<mediaobject>
|
||||||
@@ -22,11 +171,11 @@
|
|||||||
</mediaobject>
|
</mediaobject>
|
||||||
''']
|
''']
|
||||||
|
|
||||||
[* New Features]
|
[*New Features]
|
||||||
|
|
||||||
* ([issue 1133]) Add `BOOST_BEAST_USE_STD_STRING_VIEW`
|
* ([issue 1133]) Add `BOOST_BEAST_USE_STD_STRING_VIEW`
|
||||||
|
|
||||||
[* Examples]
|
[*Examples]
|
||||||
|
|
||||||
* New WebSocket server and browser-based client: [source_file example/cppcon2018]
|
* New WebSocket server and browser-based client: [source_file example/cppcon2018]
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user