Version 286:
- Refactor multi_buffer
- Refactor buffers_adapter
- Refactor static_buffer
- Refactor flat_buffer
- Refactor flat_static_buffer
- Fix missing include in sha1.hpp
- Fix ostream warning
- Field digest is endian-independent
- update broken links in README
- Fix ostream flush
API Changes:
-
Nested const and mutable buffer types for all Beast dynamic buffers are refactored. Affected types:
- buffers_adapter
- flat_buffer
- flat_static_buffer
- multi_buffer
- static_buffer
-
Nested mutable_data_type in Beast dynamic buffers is deprecated:
Changes Required:
- Use nested mutable_buffers_type instead of mutable_data_type, or define BOOST_BEAST_ALLOW_DEPRECATED
Version 285:
- Translate some win32 errors to net error codes
- enable circleci integration
- flat_buffer shrink_to_fit is noexcept
- moved-from dynamic buffers do not clear if different allocator
- fix erase field
Version 284:
- fix compilation macro documentation
- examples use strands correctly
- update root certificates in examples
- clarify end-of-file behaviour in File::read docs
- file_body returns short_read on eof during read
- fix bug in win32 file_body
Version 283:
- ostream_buffer satisfies preconditions of DynamicBuffer_v1::commit
- Add accessor function to File member of basic_file_body
Version 282:
- Use superproject docca
- Fix release build of docs
- file_win32 supports UTF-8 paths
- file_stdio supports unicode paths
Version 281:
- Travis builds docs
- Fix echo-op test
- file_win32 bodies respect http::serializer::split
Version 280:
- Fix non-msvc cmake
- Use docca master branch
Version 279:
- Use regular throw in test
- Fix pragma warning
Version 278:
- Use regular throw in test
Version 277:
- Update release notes
Version 276:
- https_get example sends the Host header
- Fix async_close error code when async_read times out
- Refactor zlib tests and fix enum typo
Version 275:
- Async init-fns use the executor's default token
- Add basic_stream::rebind_executor
- Use automatically deduced return types for all async operations
- Support Concepts for completion token params
Version 274:
- Fix leftovers in basic_parser corner case
Version 273:
- Squelch spurious websocket timer assert
- Use the executor type in basic_stream timer
Version 272:
- Add BEAST_THROWS
- Add zlib tests and fixes
Version 271:
- Add HTTP async client with system_executor example
- Add WebSocket async client with system_executor example
- Fix data race in HTTP server examples
- Fix data race in WebSocket examples
Version 270:
- Silence unused variables
- Fix typo
Version 269:
- Fix /permissive- missing include
- Add test
Version 268:
- root_certificates.hpp is not for production
Version 267:
- Add package for Travis config
- Fix signed/unsigned mismatch in file_stdio::seek
- basic_stream dtor cannot throw
- cmake: check policy first
- Add default dtors to satisfy -Wnon-virtual-dtor
- Multiple I/O of the same type is not supported
Version 266:
- Fix some missing deduced return types in the docs
Version 265:
- Fix outgoing websocket message compression
Version 264:
- Handle overflow in max size calculation in
basic_dynamic_body
- Fix unused variable warnings in tests
- Fix missing initializer warning in
basic_fields
- Remove unused functions in
impl/static_string.hpp
- Fix unused variable warning in
multi_buffer
- Fix header-only compilation errors in some configurations
- Workaround for miscompilation in MSVC 14.2
Version 263:
- Update documentation
Version 262:
- Fix deallocate in multi_buffer
Version 261:
- Deduplicate
websocket::read_size_hint
definition - Fix UB in websocket read tests
- Remove redundant includes in websocket
- Simplify websocket::detail::prng
- Don't over-allocate in http::basic_fields
- Fix multi_buffer allocation alignment
- Tidy up buffers_range
Version 260:
- More split compilation in rfc7230.hpp
- Qualify calls to
beast::iequals
in basic_parser.ipp - More split compilation in websocket/detail/mask.hpp
- Cleanup transitive includes in beast/core/detail/type_traits.hpp
- Simplify generation of sec-websocket-key
- Move detail::base64 helpers to tests
- Remove redundant includes in core
Version 259:
- Reduce the number of instantiations of filter_token_list
- Remove the use of
static_string
fromhttp::fields
- Add gcc-9 to AzP CI test matrix
- Enable split compilation in http::basic_fields
- Remove redundant instation of
static_string
in websocket - Remove redundant use of
asio::coroutine
inflat_stream
- Remove unused includes from
test::stream
- Move
char_buffer
into a separate file - Fix coverage collection in AzP CI
- Improve performance of
http::string_to_verb
- Replace uses of
net::coroutine
withasio::coroutine
- Replace uses of
net::spawn
withasio::spawn
- Use
beast::read_size
indetail::read
Version 258:
- Fix separate compilation in CI
- Fix clang inititalization warning in websocket
- Remove redundant use of
yield_to
in parser tests - Add VS 2019 AzP CI matrix item
- Clean up typo in chat websocket javascript client
Version 257:
- Add b2 features for compile-time options used in testing
- Remove redundant dependencies in http/server/fast example
- Remove experimental/unit_test/thread.hpp
- Use
if
statement in basic_stream::transfer_op - Fix flat_buffer copy members
Version 256:
- Remove uses of the deprecated
buffers
function - Remove uses of deprecated methods in websocket tests
- Remove redundant use of
static_string
- Remove redundant template in service_base
- Expand CI matrix using Azure Pipelines
- Make chat websocket javascript client more user friendly
allocator_traits::construct
is used for user-defined types- Add 1-element specialization for
buffers_cat
- Fix
buffers_cat
iterator tests - Don't pessimize-move
- Use steady_timer type
- Preserve operation_aborted on partial message
Version 255:
- Add idle ping suspend test
- Fix moved-from executor in idle ping timeout
Version 254:
- Fix data race in test::stream::connect
- Fix UB in websocket close tests
- Fix uninitalized memory use in deflate_stream
- Fix gcc-8 warning in websocket::stream
Version 253:
- Fix async_detect_ssl handler type
- member get_executor const-correctness
- Fix min/max on MSVC
- Relax requirements for vector_body
Version 252:
- More std::string_view fixes
- CI copies to libs/beast
Version 251:
- Clean up CI scripts
- detect_ssl uses bool
- launder pointers
- Fix compilation on MSVC with std::string_view
- Replace static_string in parser
Version 250:
- Use SaxonHE in reference generation
- Cleanup endianness conversions
- Set parser status and flags even if body_limit_ has been reached
Version 249:
- Move friend function template definition
Version 248:
- Don't use a moved-from handler
Version 247:
- Fix async_base immediate completion
Version 246:
- decorator ctor is explicit
Version 245:
- decorator constructor is constrained
Version 244:
- Tidy up declval in some traits
- Fix websocket keep-alive ping expiration
Version 243:
- Fix some typos
- Tidy up file_stdio for VS2015
- Fix http::message constructor constraint
Version 242:
- test::stream has deprecated lowest_layer for ssl
- MSVC uses ::fopen_s
- Fix http::message constructor constraint
- Check defined(BOOST_MSVC)
Version 241:
- Tidy up a doc code snippet
- basic_parser::content_length is stable (API Change)
Version 240:
- Fix ssl_stream teardown
Version 239:
- More split compilation in HTTP
Version 238:
- Refactor Jamfiles to work with release layout
Version 237:
- cmake: Use static libs to speed up builds
Version 236:
- root_certificates.hpp: brought in the server certificate
Version 235:
- Fix self-assignment warning in buffer test
- Jamfile cleanup
Version 234:
- Don't link to OpenSSL needlessly (bjam)
- HTTPS URLs in README.md
Version 233:
- Check ANDROID instead
- Use secure TLS/SSL versions
Version 232:
- Fix close_socket for net::basic_socket changes
- Fix file_win32_write_op async initiation
- Fix basic_stream lowest_layer for ssl
Version 231:
- Doc section names are stable
- Add missing include
- Constrain to_static_string to integers
Version 230:
- Don't use dynamic_buffer_ref
- Remove dynamic_buffer_ref
- Fix completion handler invocation signatures
Version 229:
- Rename to buffer_bytes
- Tidy up examples
- detect_ssl returns a bool
- Fix stable_async_base example
API Changes:
- handler_ptr is deprecated
Actions Required:
- Replace use of
handler_ptr
withstable_async_base
andallocate_stable
.
Version 228:
- Fix UB in decorator:
- Sync up convenience headers
- The Fields concept is deprecated (API Change)
- Fix includes.xsl for newer doxygen
- Tidy up quick reference
- SSL teardowns are in an associated namespace
Version 227:
- Fix decorator for certain sizes
Version 226:
- Support -fno-exceptions
- make_strand is in net::
- Fix HTTP parser static string calculation
- Move parser definitions to .ipp
- Appveyor uses msvc-14.0
Version 225:
- Tidy up an unused function
- Fix wsload jamfile
- Examples use flat_buffer
- Remove session_alloc (API Change)
Actions Required:
- Don't use session_alloc
Version 224:
- Remove extraneous error check in advanced-server-flex
- Advanced servers use HTTP parser interfaces for reading
- Reusing an HTTP parser returns an error
Version 223:
- Add test::stream::service
- Add websocket service
- Pausation abandoning test
- Destroy abandoned websocket ops on shutdown
Version 222:
- stream_base::timeout::suggested is a nested function
Version 221:
- Rename to async_base, stable_async_base
- role_type is in boost/beast/core/role.hpp (API Change)
- Cleanup in test::stream internals
- Pass references as pointers to async_initiate
Actions Required:
- Include <boost/beast/core/role.hpp> or define BOOST_BEAST_ALLOW_DEPRECATED=1
Version 220:
- Documentation and release notes
Version 219:
- More split definitions in test::stream
- Visual Studio 2017 minimum requirement for Windows
- Better treatment of SSL short reads
- ssl_stream is a public interface
- basic_parser is abstract, not CRTP (API Change)
- OpenSSL is required for tests and examples
Version 218:
- detect_ssl, async_detect_ssl are public interfaces
- Add OpenSSL installation/setup instructions
- Enable split Beast compilation for tests
Version 217:
- websocket idle pings
- RatePolicy documentation
- Pass strand to async_accept
- Fix file_body_win32
- Use async_initiate
- Check BOOST_NO_CXX11_THREAD_LOCAL
- Fast prng is pcg
Version 216:
- Refactor websocket::stream operations
- Add websocket::stream timeouts
- Use suggested timeouts in Websocket examples
- Add make_strand
- Add RatePolicy to basic_stream
- Use async_initiate in basic_stream
- basic_stream connects are members
- Beast supports latest Asio changes (API Change)
- WebSocket Decorator is a socket option (API Change)
- Overloads of the following functions which accept a Decorator
are deprecated:
- accept, accept_ex
- handshake, handshake_ex
- async_accept, async_accept_ex
- async_handshake, async_handshake_ex
Actions Required:
-
Code which passes decorator to any
websocket::stream
member function should callstream::set_option
instead with a newly constructedstream_base::decorator
object containing the decorator. Alternatively, the macroBOOST_BEAST_ALLOW_DEPRECATED
may be defined to 1. -
Fix compilation errors required by Asio changes
Version 215:
- basic_stream uses boost::shared_ptr
- Remove bind_back_handler
- bind_front_handler works with member functions
- Examples use bind_front_handler
- Add experimental test/handler.hpp
- Rename to async_op_base::invoke_now
- Add async_op_base::invoke
- Remove CppCon2018 example
- Examples use ssl_stream
Version 214:
- Handler binders use the associated allocator
- Add detail::bind_continuation
- Rewrite the echo-op example
Version 213:
- Fix posix_file::close handling of EINTR
- basic_stream subsumes stranded_stream:
- Use timeouts in HTTP server examples
- Use timeouts in HTTP client examples
- Use tcp_stream in WebSocket client examples
- Use tcp_stream in WebSocket server examples
- Use tcp_stream, HTTP timeouts in advanced servers
Version 212:
- dynamic_buffer_ref tests and tidy
- flat_stream tests and tidy
- stranded_socket tests and tidy
- buffers_front tests
- Improved websocket stream documentation
Version 211:
- close_socket is in stream_traits.hpp
- Improvements to test::stream
- Add stranded_stream
- Add flat_stream
- flat_buffer::clear preserves capacity
- multi_buffer::clear preserves capacity
- Fixes to rfc7230
Version 210:
- Tidy up read implementation
- Fix stable_async_op_base javadoc
- Better handling of stream timeouts
- Add stream_traits.hpp
- Add executor_type trait
- Fix hexadecimal string conversion table
- is_completion_handler, type_traits.hpp are deprecated
- Fixes to test::stream::async_read
API Changes:
- Stream traits are now in stream_traits.hpp
is_file
is now in file_base.hpp- is_completion_handler is deprecated
Actions Required:
- Include stream_traits.hpp as needed
- Include file_base.hpp as needed
- Use std::is_invocable instead of is_completion_handler
Version 209:
- Faster http::string_to_field
- async_echo supports move-only handlers
- test::stream maintains a handler work guard
- Qualify buffer_copy, don't qualify buffer_size
- Add dynamic_buffer_ref
- Refactor quickref.xml
- Add buffer_size
Version 208:
- Add get_lowest_layer free function
- Add lowest_layer_type metafunction
- Add close_socket, beast_close_socket customization
- Doc work
Version 207
- Send from the strand
- Pass the correct handler in basic_timeout_stream
API Changes:
- lowest_layer is removed
Actions Required:
- Remove lowest_layer and lowest_layer_type from user-defined streams.
- Use the get_lowest_layer free function and the lowest_layer_type trait as needed.
Version 206
- Clear error codes idiomatically
- websocket stream uses shared_ptr<impl_type>
- Add websocket-chat-multi example
Version 205
- Doc work
- Add detail/soft_mutex.hpp
- Add detail/prng.hpp
Version 204
- Add basic_timeout_stream
- Unit test macros use the global suite
- Doc work
Version 203
- Update networking refresher doc
- Include error code in call to set_option
- saved_handler is a public interface
- Use new saved_handler in websocket
- session_alloc is thread-safe
- examples use flat_buffer
- parse_until is not static
- Boost.System is header-only
Version 202
- Use cxxstd instead of cxxflags
- Update coverage badge images
- Tidy up basic_stream_socket docs
- Refactor async_op_base
- Use async_op_base
- async_op_base is a public interface
- Add tests for bind_back_handler
- Add tests for async_op_base
Version 201
- Decay bound arguments in handler wrapper parameters
- Add bind_back_handler
- Tidy up default-constructed iterators
- Add core errors and conditions
- New basic_stream_socket
Version 200
- Don't include OpenSSL for core snippets
- Tidy up msvc-14 workaround in multi_buffer
- buffers_cat fixes and coverage
- Refactor buffers_adaptor
- Refactor buffers_range
- Fix and refactor buffers_cat
- Refactor buffers_prefix
- Add const and mutable buffer sequence traits
- Add buffers_iterator_type trait
- Use new buffer traits, remove old unused traits
- Optimize for size on buffers_cat preconditions
- Refactor buffers_suffix
- Tidy up flat_buffer tests
- Fix ostream prepare calculation for low limits
- Tidy up flat_static_buffer tests
- Add more tests for dynamic buffers
- Tidy up multi_buffer
- Refactor ostream
- Refactor static_buffer
- HTTP tidying
- Adjust static_asio lib options in Jamfile
- Add type_traits tests
- Add buffers_range_ref (replaces reference_wrapper parameter)
API Changes:
- buffers_adaptor replaces buffers_adapter (rename)
- make_printable replaces buffers (rename)
- Remove file_mode::append_new
Actions Required:
-
Replace buffers_adapter.hpp with buffers_adaptor.hpp, and replace buffers_adapter with buffers_adaptor. Or, define BOOST_BEAST_ALLOW_DEPRECATED
-
Replace call sites to use make_printable instead of buffers, and also include make_printable.hpp instead of ostream.hpp.
-
Replace file_mode::append_new with file_mode::append or file_mode::append_existing instead of file_mode::append_new
Version 199:
- Workarounds for msvc-14
- Fix Appveyor badge links
Version 198:
- flat_buffer improvements
- multi_buffer improvements
- static_buffer improvements
- flat_static_buffer_improvements
- saved_handler maintains a work_guard (websocket)
- Add buffer_traits.hpp, buffers_type
- Tidy up experimental files
- Tidy up core files
- Fix bind_handler, bind_front_handler
- Improved handler bind wrapper tests
API Changes:
- Files return errc::bad_file_descriptor
- flat_static_buffer::reset is deprecated
Actions Required:
-
Callers checking for errc::invalid_argument from calls to file APIs should check for errc::bad_file_descriptor instead.
-
Replace calls to flat_static_buffer::reset with flat_static_buffer::clear
Version 197:
- Improvements to echo-op example
- Crawler example clears the response before each read
- Use a struct instead of a pair in flat_stream (experimental)
API Changes:
- Refactor HTTP operations
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.
Version 196:
- Tidy up calls to placement new
- Remove unused type_traits
- Simplify handler_ptr
Version 195:
- net is a namespace alias for boost::asio
- Simplify multi_buffer and static_buffer sequences
- Documentation work
Version 194:
- http::async_read returns the right byte count on error
- Add net namespace alias
- Don't use-after-free in test
- Tidy up ssl_stream (experimental)
- Dynamic buffer improvements
- Saved handlers are dispatched
Version 193:
- Update ssl_stream signatures for networking changes
- Fix test::stream async_result transformation
- Tidy up test::stream
- Enable explicit instantiation of websocket::stream
Version 192:
- Use mp11::integer_sequence
- Tidy up warnings and deprecated usage
- http::message is not-a boost::empty_value
- Fix link in docs
- Fixes to timeout services (experimental)
Version 191:
- Add bind_front_handler
- Use bind_front_handler
- Simplify some type traits
- Use lean_tuple in buffers_cat
- Use lean_tuple in bind_handler, bind_front_handler
- Use mp11 in detail::variant
- Fix buffers_cat uninitialized warning
- Fix static_string uninitialized warning
- Fix warning in is_ssl_handshake
Version 190:
- Add missing includes to convenience headers
- Unit test framework is experimental
- Add buffers_range
- Rename experimental directory
- Improve compilation of tests for continuous integration
- Fix visibility warnings in test
Version 189-hf1:
- Fix broken doc link
- example/cppcon2018 only requires C++11
Version 189:
- Add CppCon2018 chat server example and video
Version 188:
- Remove extraneous strand from example
- Add missing include in http/read.ipp
- Test for gcc warning bug
- Fix a spurious gcc warning
Version 187:
- Add experimental timeout_socket
- Fix warning in file tests
- Fix uninitialized comparison in buffers iterator
- Partial support for BOOST_NO_EXCEPTIONS
- Fix a spurious gcc warning
- Test for gcc warning bug
- Add missing include
- Remove extraneous strand from example
Version 186:
- basic_fields uses intrusive base hooks
- Fix parsing of out-of-bounds hex values
Version 185:
- Remove extraneous function
- Fix some typos
- Add BOOST_BEAST_USE_STD_STRING_VIEW
- Fix timer on websocket upgrade in examples
Version 183:
- Fix a rare case of failed UTF8 validation
- Verify certificates in client examples
- Use boost::empty_value
- Workaround for http-server-fast and libstdc++
Version 182:
- Silence ubsan false positive
Version 181:
- Fix parse_dec algorithm
- Add parse_dec tests
Version 180:
- Fix http_server_stackless_ssl.cpp example
Version 179:
- Use the exchange() idiom in move constructors
- Most members of std::allocate are deprecated in C++17
- Remove some unused variables
Version 178:
- Use static_cast instead
Version 177:
- Add test for issue #1188
- Set /permissive-
- Check error in example set_option
Version 176:
- Tidy up Quick Reference
- Fix array end calculation in utf8 assertion
- WebSocket masks use secure PRNG by default
Version 175:
- Fix initialization warning
Version 174:
- Fix Fields, FieldsWriter concept docs
- Fix BodyReader constructor requirements doc
Version 173:
- Remove Autobahn testsuite doc note
- Fix buffers_adapter iterator value type
- Fix buffers_adapter max_size
- Fix buffers_prefix iterator decrement
- buffers_adapter improvements
- Add icy_stream Shoutcast stream filter
Version 172:
- Tidy up websocket stream javadocs
- Fix move-only arguments in bind_handler
- Fix http::parser constructor javadoc
- Tidy up test::stream javadocs
- Tidy up composed operation doc
Version 171:
- Add handler_ptr::has_value
- Remove spurious assert
- Fix unused variable warning
Version 170:
- Add flat_stream to experimental
- Add ssl_stream to experimental
- Add test::error to experimental
- Add test::fail_count to experimental
- Add test::stream to experimental
- Use a shared string for example HTTP server doc roots
- Remove deprecated serializer::reader_impl()
- Remove deprecated Body reader and writer ctor signatures
- Add is_mutable_body_writer metafunction
- Add const and non-const overloads for message based http writes
- Use the root certificate which matches the fingerprint
Version 169:
- Use buffers_to_string in tests
- Use boost::void_t
- Refactor HTTP write_op implementation
- Use fully qualified namespace in BOOST_BEAST_HANDLER_INIT
- New flat_stream example class
- Use flat_stream in ssl_stream example code
Version 168:
- Use executor_work_guard in composed operations
- Revert verb.ipp change which caused spurious warnings
- Fix race in advanced server examples
Version 167:
- Revert: Tidy up calls to post()
Version 166:
- Use boost::is_convertible as a workaround
Version 165:
- Fix BOOST_NO_CXX11_ALLOCATOR check
Version 164:
- Fix masking on continuation frames
- Add Access-Control-Expose-Headers field constant
Version 163:
- Tidy up calls to post()
- Fix narrowing warnings
Version 162:
- Add asio_handler_invoke overloads for stream algorithms
- Improve websocket::stream::control_callback javadoc
Version 161:
- Don't copy the handler in write_some_op
- Add move-only handler tests
- Fix handler parameter javadocs
Version 160:
- Examples clear the HTTP message before reading
Version 159:
- Fix typo in release notes
- Safe treatment of zero-length string arguments in basic_fields
- Some basic_fields operations now give the strong exception guarantee
Version 158:
- Tidy up end_of_stream javadoc
- Tidy up websocket docs
- Examples set reuse_address(true)
- Advanced servers support clean shutdown via SIGINT or SIGTERM
- DynamicBuffer input areas are not mutable
- Tidy up some documentation
API Changes:
- get_lowest_layer is a type alias
Actions required:
- Replace instances of
typename get_lowest_layer<T>::type
withget_lowest_layer<T>
.
Version 157:
- Fix teardown for TIME_WAIT
- Fix big-endian websocket masking
Version 156:
- Don't use typeid
- Add release notes to documentation
- Fix stale link for void-or-deduced
Version 155:
- Fix memory leak in advanced server examples
- Fix soft-mutex assert in websocket stream
- Fix fallthrough warnings
- Tidy up bind_handler doc
Version 154:
- Type check completion handlers
- bind_handler doc update
- bind_handler works with boost placeholders
Version 153:
- Remove BOOST_VERSION checks
- Use make_error_code for setting an error_code from errc
- Use boost::winapi::GetLastError() consistently
- Update README.md for branches
- Avoid string_view::clear
- Fix iterator version of basic_fields::erase
- Fix use-after-move in example request handlers
- Add Bishop Fox interview media
Version 152:
- Refactor detect_ssl_op
- Disable gdb on Travis for Meltdown
WebSocket:
- Redistribute the read tests in the translation units
- Refactor error headers
- Add WebSocket error conditions
API Changes:
- Refactor WebSocket errors (API Change):
Actions Required:
-
Code which explicitly compares error_code values against the constant
websocket::error::handshake_failed
should compare againstwebsocket::condition::handshake_failed
instead. -
Code which explicitly compares error_code values against the constant
websocket::error::failed
should compare againstwebsocket::condition::protocol_violation
instead.
Version 151:
- Sanitizer failures are errors
- Depend on container_hash
- Fix high-ASCII in source file
WebSocket:
- Control callback is invoked on the execution context
- Add stream_fwd.hpp
- Remove unnecessary include
API Changes:
- http::parser is not MoveConstructible
- permessage-deflate is a compile-time feature
Version 150:
- handler_ptr tests
- Documentation
API Changes:
- serializer::reader_impl is deprecated
Actions Required:
- Call serializer::writer_impl instead of reader_impl
Version 149:
- built-in r-value return values can't be assigned
- Tidy up ssl_stream special members
- Fix CMakeLists.txt variable
- Protect calls from macros
- pausation always allocates
- Don't copy completion handlers
- handler_ptr is move-only
- Fix Travis memory utilization
API Changes:
- handler_ptr gives the strong exception guarantee
Actions Required:
- Change the constructor signature for state objects used with handler_ptr to receive a const reference to the handler.
Version 148:
- Install codecov on codecov CI targets only
- Update reports for hybrid assessment
- Handle invalid deflate frames
Version 147:
- Don't use boost::string_ref
- Use iterator wrapper in detail::buffers_range
HTTP:
- Tidy up basic_fields exception specifiers
WebSocket:
- control callback is copied or moved
- Send idle pings in advanced servers
Version 146:
- Fix some typos
- Faster ascii_tolower
- Documentation tidying
- Fix typo in examples documentation
- Add detail::aligned_union and tidy up
- Use variant in buffers_cat_view
API Changes:
- Remove unintended public members of handler_ptr
Version 145:
- Rename some detail functions
- Refactor basic_fields allocator internals
- Refactor HTTP async read composed operations
- null_buffers is deprecated
- Version 124 works with Boost 1.65.1 and earlier
- basic_fields does not support fancy pointers
Version 144-hf1:
- Update reports for hybrid assessment
- Handle invalid deflate frames
- Install codecov on codecov CI targets only
Version 144:
- Fix websocket permessage-deflate negotiation
Version 143:
- Fix autobahn report link
Version 142:
- Warn about upcoming API changes to certain concepts
- Fix name typo in http write test
Version 141:
- Tidy up some documentation
Version 140:
- Fix some integer warnings in 64-bit builds
- Fix utf8_checker test failures
- Fix signature for async_read_some, and tests
- Tidy up basic_parser
- Some basic_fields special members are protected
Version 139:
- Revisit boost library min/max guidance
Version 138:
- Tidy up some documentation
Version 137:
- ConstBufferSequence mandates pointer equivalence
- Add FieldsWriter constructor requirement
- Tidy up some documented constructor syntax
Version 136:
- Tidy up message doc image
Version 135:
- Fix typo in example server help text
Version 134:
- Add static_buffer_base default constructor definition
Version 133:
- Remove const&& overload of message::body
Version 132:
- Tidy up project folders in CMakeLists.txt
- Rename Cmake variables for clarity
- Add ref-qualified overloads for message::body
- Tidy up FieldsReader doc
API Changes:
- Fields::writer replaces Fields::reader
- BodyReader and BodyWriter names are swapped
Actions Required:
- Rename reader to writer for user defined Fields
- Swap the reader and writer names for user defined Body types
- Swap use of is_body_reader and is_body_writer
Version 131:
- basic_fields returns const values
- Set SNI hostname in example SSL clients
Version 130:
- Tidy up fallthrough warning
- Remove cxx11_sfinae_expr build requirement from tests
Version 129:
- Add autobahn test report to doc
- Documentation tidying
- Fix prepare_payload: chunked is HTTP/1.1
Version 128:
- Update doc links
- Add explicit-failures-markup.xml
HTTP:
- Add message::need_eof
- Use message::need_eof in example servers
- Use synchronous writes in chunk output example
WebSocket:
- Fix utf8 validation for autobahn
- Temporarily disable utf8 validation tests
- Tidy up fast websocket server host names
API Changes:
- Remove serializer::keep_alive
- Remove serializer::chunked
- Add has_content_length_impl to Fields
- Add message::has_content_length
- Rename some basic_parser observers
Actions Required:
- Call message::keep_alive instead of serializer::keep_alive
- Call serializer::get::chunked instead of serializer::chunked
- Implement has_content_length_impl for user-defined Fields
- Remove the "is_" prefix from call sites invoking certain basic_parser members
Version 127:
- Add BOOST_BEAST_NO_POSIX_FADVISE
- Version command line option for HTTP client examples
- More Jamfile compiler requirements for tests
Version 126:
- Add CppCon2017 presentation link
- Update README.md
- Update stream write documentation for end of stream changes
- Tidy up unused variable warnings
- Don't return end_of_stream on win32 file body writes
- Fix doc typo
- Fix shadowing in session_alloc
- Fix executor type compilation
- Add Travis tests with the default compilers
- Update Boost.WinAPI usage to the new location and namespace.
- Fix buffered_read_stream async_read_some signature
Version 125:
API Changes:
- Update for Net-TS Asio
Actions Required:
- Use BOOST_ASIO_HANDLER_TYPE instead of handler_type
- Use BOOST_ASIO_INITFN_RESULT_TYPE instead of async_result
- Use boost::asio::async_completion
- Use boost::asio::is_dynamic_buffer
- Use boost::asio::is_const_buffer_sequence
- Use boost::asio::is_mutable_buffer_sequence
- boost::asio::associated_allocator_t replaces handler_alloc
Version 124:
- Fix for a test matrix compiler
- Fix basic_fields javadoc
API Changes:
- http write returns success on connection close
Actions Required:
- Add code to servers to close the connection after successfully
writing a message where
message::keep_alive()
would returnfalse
.
Version 123:
- Use unit-test subtree
- Fix spurious race in websocket close test
- Check compiler feature in Jamfile
- Clear previous message fields in parser
Version 122:
- Add test for issue 807
- assert on empty buffer in websocket read
- Fix zlib symbol conflicts
- CMake 3.5.1 is required
- config.hpp is not a public header
- Add missing case in error test
Version 121:
- Add test for issue 802
- Fix enum and non-enum in conditional exp. warning
Version 120:
- Fix spurious strand_ in advanced_server_flex
- OpenSSL targets are optional (CMake)
Version 119:
- Tidy up doc badge links
Version 118:
- file_win32 opens for read-only in shared mode
- Remove unused strands in server examples
- Update build instructions
- Doc root is at index.html
HTTP:
- Fix writing header into std::ostream
Version 117:
- Add buffers_to_string
API Changes:
- buffers_suffix replaces consuming_buffers
- buffers_prefix replaces buffer_prefix
- buffers_prefix_view replaces buffer_prefix_view
- buffers_front replaces buffer_front
- buffers_cat replaces buffer_cat
- buffers_cat_view replaces buffer_cat_view
- Remove buffers_suffix::get
Actions Required:
- Use buffers_suffix instead of consuming_buffers
- Use buffers_prefix instead of buffer_prefix
- Use buffers_prefix_view instead of buffer_prefix_view
- Use buffers_front instead of buffer_front
- Use buffers_cat instead of buffer_cat
- Use buffers_cat_view instead of buffer_cat_view
- Avoid calling buffers_suffix::get
Version 116:
API Changes:
- message::body is a member function
- message::version is a member function
Actions Required:
-
Call member function message::body instead of accessing the data member at call sites.
-
Call member function message::version instead of accessing the version member at call sites.
Version 115:
- Update README.md master doc link
Version 114:
(No changes)
Version 113:
- Fix handler signature in async_read_header
- Remove field_range copy constructor
Version 112:
- Update websocket notes
API Changes:
-
WebSocket writes return the bytes transferred
-
HTTP reads and writes return bytes transferred
Actions Required:
-
Modify websocket write completion handlers to receive the extra std::size_t bytes_transferred parameter.
-
Modify HTTP read and/or write completion handlers to receive the extra std::size_t bytes_transferred parameter.
Version 111:
WebSocket:
- Fix utf8 check split code point at buffer end
- Refactor stream operations and tests plus coverage
- Suspended ops special members
Version 110:
- Refactor stream open state variable
- Refactor websocket stream members
- Refactor websocket stream: fixes and tests
- Add test::stream::lowest_layer
- Fix invalid iterator in test reporter
Version 109:
- refactor test::stream
WebSocket:
- Fix async_read_some handler signature
- websocket close fixes and tests
- websocket handshake uses coroutine
- websocket ping tests
- Fix websocket close_op resume state
- websocket write tests
- split up websocket tests
- websocket read tests
API Changes:
- websocket accept refactoring
Actions Required:
- Do not call websocket accept overloads which take both a message and a buffer sequence, as it is illegal per rfc6455.
Version 108:
- Fix argument parsing in HTTP examples
- Don't use async_write_msg in examples
Version 107:
- Use test::stream
WebSocket
- Fix done state for WebSocket reads
- Fix utf8 check for compressed frames
- Rename frame and header buffer types
Version 106:
- Dynamic buffer input areas are mutable
- Add flat_static_buffer::reset
HTTP:
- Fix for basic_parser::skip(true) and docs
WebSocket:
- websocket test improvements
- Remove obsolete write_op
- Refactor write_op
- Refactor ping_op
- Refactor fail_op
- Refactor read_op
- Refactor close_op
- Refactor read_op + fail_op
- Websocket close will automatically drain
- Autobahn|Testsuite fixes
- Tidy up utf8_checker and tests
Version 105:
- Fix compile error in websocket snippet
- Tidy up Jamfile and tests
Version 104:
- Remove unused include
- Use #error in config.hpp
- Only set -std=c++11 on Travis
- Only set /permissive- on Appveyor
- Tidy up some test warnings
- tools/ renamed from build/
WebSocket:
- Fix pausation::save
Version 103:
- Boost test matrix fixes
- Tidy up allocator usage
- Example HTTP server fixes
Version 102:
- Section headings in examples
Version 101:
- Refactor all examples
Version 100:
- Fix doc convenience includes
- Fix doc includes
- Remove unused test header
- Rename test macros
- Reorder define test macro params
- vcxproj workaround for include symlinks
- Add variadic min/max
WebSocket:
- Remove obsolete frame tests
- Refactor fail/clode code
- Call do_fail from read_some
- eof on accept returns error::closed
- Fix stream::read_size_hint calculation
- Documentation
API Changes:
-
Calls to stream::close and stream::async_close will automatically perform the required read operations
-
drain_buffer is removed
-
role_type replaces teardown_tag
Actions Required:
-
Remove calling code which drains the connection after calling stream::close or stream::async_close
-
Replace code which uses drain_buffer. For websocket::stream, it is no longer necessary to manually drain the connection after closing.
-
Modify signatures of teardown and async_teardown to use role_type instead of teardown_tag
-
Change calls to teardown and async_teardown to pass the correct role_type, client or server, depending on context.
Version 99:
- Log the value of LIB_DIR for doc builds (debug)
- Use correct handler signature in fail_op
- Fix doc typo
Version 98:
- basic_fields::key_compare is noexcept
- Fix bench-zlib cmake
- Use unique names Jam projects
- Trim utf8 checker test
Version 97:
- Update redirect
Version 96:
- Move bench/ to test/
- Move extras/ to test/
- Use property
- Rename wsload compile target
- Fix library.json
- Update boostorg links
- Add bench-zlib
- Faster zlib tests
- Less compression on websocket test
Version 95:
- Tidy up Travis build scripts
- Move scripts to build/
- Fix race in test::pipe
- close on test::pipe teardown
- Add test::stream
- Tidy up static_buffer braced init
- Fix html redirect
- Add valgrind variant, fix false positives
Version 94:
- Use off-site Quick Start link temporarily
Version 93:
- Unset BOOST_COROUTINES_NO_DEPRECATION_WARNING
Version 92:
- Fix typo in test/CMakeLists.txt
- basic_fields::value_type is not copyable
- Update repository links in source comments
- Ignore Content-Length in some cases
- Tidy up doc snippet paths
- Use off-site doc link
Version 91:
- Adjust redirect html
- Don't build pre-C++11
- source.dox is path-independent
- Tidy up namespace qualifiers
- Tidy up MSVC CMakeLists.txt
- Optimize buffered_read_stream
- constexpr in derived buffers
- Set BOOST_ASIO_NO_DEPRECATED
- Use Asio array optimization in static_buffer_base
- Rename wstest source file
- Use fopen_s on Windows
- Fix Appveyor script
- Update project metadata
- Move benchmarks to bench/
- Fix doc title
- Build stand-alone doc
- Update doc copyrights
- Refactor test build scripts
WebSocket:
- Tidy up websocket javadocs
- Refactor accept, handshake ops
- Use read buffer instead of buffered stream
API Changes
- control frame callbacks are non-const references
Actions Required:
- Modify calls to set the control frame callback, to pass non-const reference instances, and manage the lifetime of the instance.
Version 90:
- Fix websocket read of zero length message
- Fix typo in equal_range
- Output to integrated documentation
Version 89:
- Fix CONTRIBUTING.md links
Version 88:
- Update doc links in README.md
- Refactor tests Jamfile
- Don't use program_options
WebSocket:
- Fix uninitialized frame done
Version 87:
- Update appveyor for Boost branch
- Rename to BEAST_EXPECT
- variant fixes and tests
- Update README, add CONTRIBUTING.md and CODE_OF_CONDUCT.md
Version 86:
- Boost prep
- Remove use of lexical_cast
- Use custom variant
- Update README.md
- Add local-travis.sh
- Use winapi
- Update CMakeLists.txt for boost
- Update documentation for boost
- Update copyrights
- Remove spurious declaration
- Tidy up Jamfile
- Normalize doc build scripts
- Use configured doxygen and xsltproc
- Fix Deferred Body Type Example Documentation
- Add library metadata
API Changes:
- websocket read returns the number of bytes inserted
Actions Required:
- Change the signature of completion handlers used with websocket::stream::async_read to void(error_code, std::size_t)
Version 85:
- Fix test failure
- Tidy up test warning
Version 84:
- Tidy up buffer_front
- static_buffer::consume improvement
- multi_buffer is type-check friendly
- bind_handler allows placeholders
- Add consuming_buffers::get
WebSocket:
- WebSocket read optimization
API Changes:
- websocket::stream::read_buffer_size is removed
Actions Required:
- Remove calls websocket::stream::read_buffer_size
- Use read_some and write_some instead of read_frame and write_frame
Version 83:
- Add flat_static_buffer::mutable_data
- Add buffer_front
- Add wstest compression option
- Turn some flat_static_buffer_tests on
- Documentation work
- read_some, async_read_some return bytes used
- Fix private timer::clock_type
WebSocket
- Add wstest compression option
- Fix buffer lifetime in websocket write
API Changes:
- Add static_buffer
Actions Required:
- Callers who depend on static_buffer returning sequences of exactly length one should switch to flat_static_buffer.
Version 82:
- Documentation tidying
- is_invocable works with move-only types
- Use std::function and reference wrapper
- Add session_alloc to example/common
- Silence spurious warning
HTTP
- Fix extraneous argument in async_write_header
WebSocket
- stream tidying
- Add rd_close_ to websocket stream state
- stream uses flat_buffer
- accept requires a message
- Add wstest benchmark tool
API Changes:
- Rename to flat_static_buffer and flat_static_buffer_base
Actions Required:
- Rename static_buffer to flat_static_buffer_base
- Rename static_buffer_n to flat_static_buffer
Version 81:
- Pass string_view by value
- better is_final on empty_base_optimization
- Suppress incorrect GCC warning
- multi_buffer ctor is explicit
- File is not copy-constructible
API Changes:
- Refactor basic_parser, chunk parsing:
Actions Required:
-
Adjust signatures for required members of user-defined subclasses of basic_parser
-
Use the new basic_parser chunk callbacks for accessing chunk extensions and chunk bodies.
Version 80:
- Javadoc tidying
- Add basic_dynamic_body.hpp
- Shrink buffer_prefix_view
- Remove unused file_path
- Add basic_file_body.hpp
- buffers_ref is Assignable
HTTP
- Shrink chunk header buffer sequence size
API Changes:
- Refactor chunked-encoding serialization
Actions Required:
- Remove references to ChunkDecorators. Use the new chunk-encoding buffer sequences to manually produce a chunked payload body in the case where control over the chunk-extensions and/or trailers is required.
Version 79:
- Remove spurious fallthrough guidance
Version 78:
- Add span
- Documentation work
- Use make_unique_noinit
- Fix warning in zlib
- Header file tidying
- Tidy up FieldsReader doc
- Add Boost.Locale utf8 benchmark comparison
- Tidy up dstream for existing Boost versions
- Tidy up file_posix unused variable
- Fix warning in root ca declaration
HTTP:
- Tidy up basic_string_body
- Add vector_body
- span, string, vector bodies are public
- Fix spurious uninitialized warning
- fields temp string uses allocator
API Changes:
- Add message::keep_alive()
- Add message::chunked() and message::content_length()
- Remove string_view_body
Actions Required:
-
Change user defined implementations of Fields and FieldsReader to meet the new requirements.
-
Use span_body instead of string_view_body
Version 77:
- file_posix works without large file support
Version 76:
- Always go through write_some
- Use Boost.Config
- BodyReader may construct from a non-const message
- Add serializer::get
- Add serializer::chunked
- Serializer members are not const
- serializing file_body is not const
- Add file_body_win32
- Fix parse illegal characters in obs-fold
- Disable SSE4.2 optimizations
API Changes:
- Rename to serializer::keep_alive
- BodyReader, BodyWriter use two-phase init
Actions Required:
-
Use serializer::keep_alive instead of serializer::close and take the logical NOT of the return value.
-
Modify instances of user-defined BodyReader and BodyWriter types to perform two-phase initialization, as per the updated documented type requirements.
Version 75:
- Use file_body for valid requests, string_body otherwise.
- Construct buffer_prefix_view in-place
- Shrink serializer buffers using buffers_ref
- Tidy up BEAST_NO_BIG_VARIANTS
- Shrink serializer buffers using buffers_ref
- Add serializer::limit
- file_body tests
- Using SSE4.2 intrinsics in basic_parser if available
Version 74:
- Add file_stdio and File concept
- Add file_win32
- Add file_body
- Remove common/file_body.hpp
- Add file_posix
- Fix Beast include directories for cmake targets
- remove redundant flush() from example
Version 73:
- Jamroot tweak
- Verify certificates in SSL clients
- Adjust benchmarks
- Initialize local variable in basic_parser
- Fixes for gcc-4.8
HTTP:
- basic_parser optimizations
- Add basic_parser tests
API Changes:
- Refactor header and message constructors
- serializer::next replaces serializer::get
Actions Required:
-
Evaluate each message constructor call site and adjust the constructor argument list as needed.
-
Use serializer::next instead of serializer::get at call sites
Version 72:
HTTP:
- Tidy up set payload in http-server-fast
- Refine Body::size specification
- Newly constructed responses have a 200 OK result
- Refactor file_body for best practices
- Add http-server-threaded example
- Documentation tidying
- Various improvements to http_server_fast.cpp
WebSocket:
- Add websocket-server-async example
Version 71:
- Fix extra ; warning
- Documentation revision
- Fix spurious on_chunk invocation
- Call prepare_payload in HTTP example
- Check trailers in test
- Fix buffer overflow handling for string_body and mutable_body
- Concept check in basic_dynamic_body
- Tidy up http_sync_port error check
- Tidy up Jamroot /permissive-
WebSockets:
- Fine tune websocket op asserts
- Refactor websocket composed ops
- Allow close, ping, and write to happen concurrently
- Fix race in websocket read op
- Fix websocket write op
- Add cmake options for examples and tests
API Changes:
- Return
std::size_t
fromBody::writer::put
Actions Required:
- Return the number of bytes actually transferred from the
input buffers in user defined
Body::writer::put
functions.
Version 70:
- Serialize in one step when possible
- Add basic_parser header and body limits
- Add parser::on_header to set a callback
- Fix BEAST_FALLTHROUGH
- Fix HEAD response in file_service
API Changes:
- Rename to message::base
- basic_parser default limits are now 1MB/8MB
Actions Required:
-
Change calls to message::header_part() with message::base()
-
Call body_limit and/or header_limit as needed to adjust the limits to suitable values if the defaults are insufficient.
Version 69:
- basic_parser optimizations
- Use BEAST_FALLTHROUGH to silence warnings
- Add /permissive- to msvc toolchain
Version 68:
- Split common tests to a new project
- Small speed up in fields comparisons
- Adjust buffer size in fast server
- Use string_ref in older Boost versions
- Optimize field lookups
- Add const_body, mutable_body to examples
- Link statically on cmake MSVC
API Changes:
- Change BodyReader, BodyWriter requirements
- Remove BodyReader::is_deferred
- http::error::bad_target replaces bad_path
Actions Required:
-
Change user defined instances of BodyReader and BodyWriter to meet the new requirements.
-
Replace references to http::error::bad_path with http::error::bad_target
Version 67:
- Fix doc example link
- Add http-server-small example
- Merge stream_base to stream and tidy
- Use boost::string_view
- Rename to http-server-fast
- Appveyor use Boost 1.64.0
- Group common example headers
API Changes:
- control_callback replaces ping_callback
Actions Required:
-
Change calls to websocket::stream::ping_callback to use websocket::stream::control_callback
-
Change user defined ping callbacks to have the new signature and adjust the callback definition appropriately.
Version 66:
- string_param optimizations
- Add serializer request/response aliases
- Make consuming_buffers smaller
- Fix costly potential value-init in parser
- Fix unused parameter warning
- Handle bad_alloc in parser
- Tidy up message piecewise ctors
- Add header aliases
- basic_fields optimizations
- Add http-server example
- Squelch spurious warning on gcc
Version 65:
- Enable narrowing warning on msvc cmake
- Fix integer types in deflate_stream::bi_reverse
- Fix narrowing in static_ostream
- Fix narrowing in ostream
- Fix narrowing in inflate_stream
- Fix narrowing in deflate_stream
- Fix integer warnings
- Enable unused variable warning on msvc cmake
Version 64:
- Simplify buffered_read_stream composed op
- Simplify ssl teardown composed op
- Simplify websocket write_op
- Exemplars are compiled code
- Better User-Agent in examples
- async_write requires a non-const message
- Doc tidying
- Add link_directories to cmake
API Changes:
- Remove make_serializer
Actions Required:
- Replace calls to make_serializer with variable declarations
Version 63:
- Use std::to_string instead of lexical_cast
- Don't use cached Boost
- Put num_jobs back up on Travis
- Only build and run tests in variant=coverage
- Move benchmarks to a separate project
- Only run the tests under ubasan
- Tidy up CMakeLists.txt
- Tidy up Jamfiles
- Control running with valgrind explicitly
Version 62:
- Remove libssl-dev from a Travis matrix item
- Increase detail::static_ostream coverage
- Add server-framework tests
- Doc fixes and tidy
- Tidy up namespaces in examples
- Clear the error faster
- Avoid explicit operator bool for error
- Add http::is_fields trait
- Squelch harmless not_connected errors
- Put slow tests back for coverage builds
API Changes:
- parser requires basic_fields
- Refine FieldsReader concept
- message::prepare_payload replaces message::prepare
Actions Required:
-
Callers using
parser
with Fields types other than basic_fields will need to create their own subclass of basic_parser to work with their custom fields type. -
Implement chunked() and keep_alive() for user defined FieldsReader types.
-
Change calls to msg.prepare to msg.prepare_payload. For messages with a user-defined Fields, provide the function prepare_payload_impl in the fields type according to the Fields requirements.
Version 61:
- Remove Spirit dependency
- Use generic_cateogry for errno
- Reorganize SSL examples
- Tidy up some integer conversion warnings
- Add message::header_part()
- Tidy up names in error categories
- Flush the output stream in the example
- Clean close in Secure WebSocket client
- Add server-framework SSL HTTP and WebSocket ports
- Fix shadowing warnings
- Tidy up http-crawl example
- Add multi_port to server-framework
- Tidy up resolver calls
- Use one job on CI
- Don't run slow tests on certain targets
API Changes:
- header::version is unsigned
- status-codes is unsigned
Version 60:
- String comparisons are public interfaces
- Fix response message type in async websocket accept
- New server-framework, full featured server example
Version 59:
- Integrated Beast INTERFACE (cmake)
- Fix base64 alphabet
- Remove obsolete doc/README.md
API Changes:
- Change Body::size signature (API Change):
Actions Required:
- For any user-defined models of Body, change the function signature
to accept
value_type const&
and modify the function definition accordingly.
Version 58:
- Fix unaligned reads in utf8-checker
- Qualify size_t in message template
- Reorganize examples
- Specification for http read
- Avoid
std::string
in websocket - Fix basic_fields insert ordering
- basic_fields::set optimization
- basic_parser::put doc
- Use static string in basic_fields::reader
- Remove redundant code
- Fix parsing chunk size with leading zeroes
- Better message formal parameter names
API Changes:
basic_fields::set
renamed frombasic_fields::replace
Actions Required:
- Rename calls to
basic_fields::replace
tobasic_fields::set
Version 57:
- Fix message.hpp javadocs
- Fix warning in basic_parser.cpp
- Integrate docca for documentation and tidy
Version 56:
- Add provisional IANA header field names
- Add string_view_body
- Call on_chunk when the extension is empty
- HTTP/1.1 is the default version
- Try harder to find Boost (cmake)
- Reset error codes
- More basic_parser tests
- Add an INTERFACE cmake target
- Convert buffer in range loops
Version 55:
- Don't allocate memory to handle obs-fold
- Avoid a parser allocation using non-flat buffer
- read_size replaces read_size_helper
Version 54:
- static_buffer coverage
- flat_buffer coverage
- multi_buffer coverage
- consuming_buffers members and coverage
- basic_fields members and coverage
- Add string_param
- Retain ownership when reading using a message
- Fix incorrect use of [[fallthrough]]
API Changes:
- basic_fields refactor
Version 53:
- Fix basic_parser::maybe_flatten
- Fix read_size_helper usage
Version 52:
- flat_buffer is an AllocatorAwareContainer
- Add drain_buffer class
API Changes:
auto_fragment
is a member ofstream
binary
,text
are members ofstream
- read_buffer_size is a member of
stream
- read_message_max is a member of
stream
write_buffer_size
is a member ofstream
ping_callback
is a member of stream- Remove
opcode
fromread
,async_read
read_frame
returnsbool
finopcode
is private- finish(error_code&) is a BodyReader requirement
Actions Required:
-
Change call sites which use
auto_fragment
withset_option
to callstream::auto_fragment
instead. -
Change call sites which use message_type with
set_option
to callstream::binary
orstream::text
instead. -
Change call sites which use
read_buffer_size
withset_option
to callstream::read_buffer_size
instead. -
Change call sites which use
read_message_max
withset_option
to callstream::read_message_max
instead. -
Change call sites which use
write_buffer_size
withset_option
to callstream::write_buffer_size
instead. -
Change call sites which use
ping_callback1 with
set_optionto call
stream::ping_callback` instead. -
Remove the
opcode
reference parameter from calls to synchronous and asynchronous read functions, replace the logic with calls tostream::got_binary
andstream::got_text
instead. -
Remove the
frame_info
parameter from all read frame call sites -
Check the return value 'fin' for calls to
read_frame
-
Change ReadHandlers passed to
async_read_frame
to have the signaturevoid(error_code, bool fin)
, use thebool
to indicate if the frame is the last frame. -
Remove all occurrences of the
opcode
enum at call sites
Version 51
- Fix operator<< for header
- Tidy up file_body
- Fix file_body::get() not setting the more flag correctly
- Use BOOST_FALLTHROUGH
- Use BOOST_STRINGIZE
- DynamicBuffer benchmarks
- Add construct, destroy to handler_alloc
- Fix infinite loop in basic_parser
API Changes:
- Tune up static_buffer
- multi_buffer implementation change
Actions Required:
- Call sites passing a number to multi_buffer's constructor will need to be adjusted, see the corresponding commit message.
Version 50
- parser is constructible from other body types
- Add field enumeration
- Use allocator more in basic_fields
- Fix basic_fields allocator awareness
- Use field in basic_fields and call sites
- Use field in basic_parser
- Tidy up basic_fields, header, and field concepts
- Fields concept work
- Body documentation work
- Add missing handler_alloc nested types
- Fix chunk delimiter parsing
- Fix test::pipe read_size
- Fix chunk header parsing
API Changes:
- Remove header_parser
- Add verb to on_request for parsers
- Refactor prepare
- Protect basic_fields special members
- Remove message connection settings
- Remove message free functions
- Remove obsolete serializer allocator
- http read_some, async_read_some don't return bytes
Version 49
- Use instead of
HTTP:
- Add HEAD request example
API Changes:
- Refactor method and verb
- Canonicalize string_view parameter types
- Tidy up empty_body writer error
- Refactor header status, reason, and target
Version 48
- Make buffer_prefix_view public
- Remove detail::sync_ostream
- Tidy up core type traits
API Changes:
- Tidy up chunk decorator
- Rename to buffer_cat_view
- Consolidate parsers to parser.hpp
- Rename to parser
Version 47
- Disable operator<< for buffer_body
- buffer_size overload for basic_multi_buffer::const_buffers_type
- Fix undefined behavior in pausation
- Fix leak in basic_flat_buffer
API Changes:
- Refactor treatment of request-method
- Refactor treatment of status code and obsolete reason
- Refactor HTTP serialization and parsing
Version 46
- Add test::pipe
- Documentation work
API Changes:
- Remove HTTP header aliases
- Refactor HTTP serialization
- Refactor type traits
Version 45
- Workaround for boost::asio::basic_streambuf type check
- Fix message doc image
- Better test::enable_yield_to
- Fix header::reason
- Documentation work
- buffer_view skips empty buffer sequences
- Disable reverse_iterator buffer_view test
Version 44
- Use BOOST_THROW_EXCEPTION
- Tidy up read_size_helper and dynamic buffers
- Require Boost 1.58.0 or later
- Tidy up and make get_lowest_layer public
- Use BOOST_STATIC_ASSERT
- Fix async return values in docs
- Fix README websocket example
- Add buffers_adapter regression test
- Tidy up is_dynamic_buffer traits test
- Make buffers_adapter meet requirements
Version 43
- Require Boost 1.64.0
- Fix strict aliasing warnings in buffers_view
- Tidy up buffer_prefix overloads and test
- Add write limit to test::string_ostream
- Additional constructors for consuming_buffers
Version 42
- Fix javadoc typo
- Add formal review notes
- Make buffers_view a public interface
Version 41
- Trim Appveyor matrix rows
- Concept revision and documentation
- Remove coveralls integration
- Tidy up formal parameter names
WebSocket
- Tidy up websocket::close_code enum and constructors
API Changes
- Return http::error::end_of_stream on HTTP read eof
- Remove placeholders
- Rename prepare_buffer(s) to buffer_prefix
- Remove handler helpers, tidy up hook invocations
Version 40
- Add to_static_string
- Consolidate get_lowest_layer in type_traits.hpp
- Fix basic_streambuf movable trait
- Tidy up .travis.yml
Version 39
Beast versions are now identified by a single integer which is incremented on each merge. The macro BEAST_VERSION identifies the version number, currently at 39. A version setting commit will always be at the tip of the master and develop branches.
- Use beast::string_view alias
- Fixed braced-init error with older gcc
HTTP
- Tidy up basic_parser javadocs
WebSocket:
- Add websocket async echo ssl server test:
- Fix eof error on ssl::stream shutdown
API Changes:
- Refactor http::header contents
- New ostream() returns dynamic buffer output stream
- New buffers() replaces to_string()
- Rename to multi_buffer, basic_multi_buffer
- Rename to flat_buffer, basic_flat_buffer
- Rename to static_buffer, static_buffer_n
- Rename to buffered_read_stream
- Harmonize concepts and identifiers with net-ts
- Tidy up HTTP reason_string
1.0.0-b38
- Refactor static_string
- Refactor base64
- Use static_string for WebSocket handshakes
- Simplify get_lowest_layer test
- Add test_allocator to extras/test
- More flat_streambuf tests
- WebSocket doc work
- Prevent basic_fields operator[] assignment
API Changes:
- Refactor WebSocket error codes
- Remove websocket::keep_alive option
1.0.0-b37
- CMake hide command lines in .vcxproj Output windows"
- Rename to detail::is_invocable
- Rename project to http-bench
- Fix flat_streambuf
- Add ub sanitizer blacklist
- Add -funsigned-char to asan build target
- Fix narrowing warning in table constants
WebSocket:
- Add is_upgrade() free function
- Document websocket::stream thread safety
- Rename to websocket::detail::pausation
API Changes:
- Provide websocket::stream accept() overloads
- Refactor websocket decorators
- Move everything in basic_fields.hpp to fields.hpp
- Rename to http::dynamic_body, consolidate header
1.0.0-b36
- Update README.md
1.0.0-b35
- Add Appveyor build scripts and badge
- Tidy up MSVC CMake configuration
- Make close_code a proper enum
- Add flat_streambuf
- Rename to BEAST_DOXYGEN
- Update .gitignore for VS2017
- Fix README.md CMake instructions
API Changes:
- New HTTP interfaces
- Remove http::empty_body
1.0.0-b34
- Fix and tidy up CMake build scripts
1.0.0-b33
- Require Visual Studio 2015 Update 3 or later
HTTP
- Use fwrite return value in file_body
WebSocket
- Set internal state correctly when writing frames
- Add decorator unit test
- Add write_frames unit test
1.0.0-b32
- Add io_service completion invariants test
- Update CMake scripts for finding packages
API Changes:
- Remove http Writer suspend and resume feature
1.0.0-b31
- Tidy up build settings
- Add missing dynabuf_readstream member
WebSocket
- Move the handler, don't copy it
1.0.0-b30
WebSocket
- Fix race in pings during reads
- Fix race in close frames during reads
- Fix race when write suspends
- Allow concurrent websocket async ping and writes
1.0.0-b29
- Fix compilation error in non-template class
- Document type-pun in buffer_cat
- Correctly check ostream modifier (/extras)
HTTP
- Fix Body requirements doc
- Fix illegal HTTP characters accepted as hex zero
- Fix Writer return value documentation
WebSocket
- Fix race in writes during reads
- Fix doc link typo
1.0.0-b28
- Split out and rename test stream classes
- Restyle async result constructions
- Fix HTTP split parse edge case
1.0.0-b27
- Tidy up tests and docs
- Add documentation building instructions
API Changes:
- Invoke callback on pings and pongs
- Move basic_streambuf to streambuf.hpp
1.0.0-b26
- Tidy up warnings and tests
1.0.0-b25
- Fixes for WebSocket echo server
- Fix 32-bit arm7 warnings
- Remove unnecessary include
- WebSocket server examples and test tidying
- Fix deflate setup bug
API Changes:
- Better handler_ptr
1.0.0-b24
- bjam use clang on MACOSX
- Simplify Travis package install specification
- Add optional yield_to arguments
- Make decorator copyable
- Add WebSocket permessage-deflate extension support
1.0.0-b23
- Tune websocket echo server for performance
- Add file and line number to thrown exceptions
- Better logging in async echo server
- Add copy special members
- Fix message constructor and special members
- Travis CI improvements
1.0.0-b22
- Fix broken Intellisense
- Implement the Asio deallocation-before-invocation guarantee
- Add handler helpers
- Avoid copies in handler_alloc
- Update README.md example programs
- Fix websocket stream read documentation
- Disable Boost.Coroutine deprecation warning
- Update documentation examples
1.0.0-b21
- Remove extraneous includes
1.0.0-b20
ZLib
- Add ZLib module
API Changes:
- Rename HTTP identifiers
1.0.0-b19
- Boost library min/max guidance
- Improvements to code coverage
- Use boost::lexical_cast instead of std::to_string
- Fix prepare_buffers value_type
- Fix consuming_buffers value_type
- Better buffer_cat
HTTP
- Make chunk_encode public
- Add write, async_write, operator<< for message_headers
- Add read, async_read for message_headers
- Fix with_body example
WebSocket
- Optimize utf8 validation
- Optimize mask operations
API Changes:
- Refactor message and message_headers declarations
- prepared_buffers is private
- consume_buffers is removed
1.0.0-b18
- Increase optimization settings for MSVC builds
HTTP
- Check invariants in parse_op:
- Clean up message docs
WebSocket
- Write buffer option does not change capacity
- Close connection during async_read on close frame
- Add pong, async pong to stream
Core
- Meet DynamicBuffer requirements for static_streambuf
- Fix write_frame masking and auto-fragment handling
Extras
- unit_test::suite fixes:
- New overload of fail() specifies file and line
- BEAST_EXPECTS only evaluates the reason string on a failure
- Add zlib module
1.0.0-b17
- Change implicit to default value in example
- Tidy up some declarations
- Fix basic_streambuf::capacity
- Add basic_streambuf::alloc_size
- Parser callbacks may not throw
- Fix Reader concept doc typo
- Add is_Reader trait
- Tidy up basic_headers for documentation
- Tidy up documentation
- Add basic_parser_v1::reset
- Fix handling of body_what::pause in basic_parser_v1
- Add headers_parser
- Engaged invokable is destructible
- Improve websocket example in README.md
- Refactor read_size_helper
API Changes:
- Added init() to Reader requirements
- Reader must be nothrow constructible
- Reader is now constructed right before reading the body
- The message passed on construction is filled in
- Rework HTTP concepts:
- Writer uses write instead of operator()
- Refactor traits to use void_t
- Remove is_ReadableBody, is_WritableBody
- Add has_reader, has_writer, is_Reader, is_Writer
- More friendly compile errors on failed concept checks
- basic_parser_v1 requires all callbacks present
- on_headers parser callback now returns void
- on_body_what is a new required parser callback returning body_what
1.0.0-b16
- Make value optional in param-list
- Frame processing routines are member functions
- Fix on_headers called twice from basic_parser_v1
- Constrain parser_v1 constructor
- Improve first line serialization
- Add pause option to on_headers interface
- Refactor base_parser_v1 callback traits:
- Refine Parser concept
- Relax ForwardIterator requirements in FieldSequence
- Fix websocket failure testing
- Refine Writer concept and fix exemplar in documentation
API Changes:
- Rename mask_buffer_size to write_buffer_size
- Make auto_fragment a boolean option
The message class hierarchy is refactored (breaking change):
-
One message class now models both HTTP/1 and HTTP/2 messages
-
message_v1, request_v1, response_v1 removed
-
New classes basic_request and basic_response model messages without the body.
Error resolution: Callers should use message, request, and response instead of message_v1, request_v1, and response_v1 respectively.
1.0.0-b15
- rfc7230 section 3.3.2 compliance
- Add HTTPS example
- Add Secure WebSocket example
- Fix message_v1 constructor
- Tidy up DynamicBuffer requirements
- Tidy up error types and headers
- Fix handling empty HTTP headers in parser_v1
1.0.0-b14
- Add missing rebind to handler_alloc
- Fix error handling in http server examples
- Fix CMake scripts for MinGW
- Use BOOST_ASSERT
- Better WebSocket decorator
- Update and tidy documentation
1.0.0-b13
- dstream improvements
- Remove bin and bin64 directories
- Tidy up .vcxproj file groupings
1.0.0-b12
- Use -p to print suites from unit test main.
- BEAST_EXPECTS to add a reason string to test failures
- Fix unit test runner to output all case names
- Update README for build requirements
- Rename to CHANGELOG.md
1.0.0-b11
- Set URI in generated WebSocket Upgrade requests
- Rename echo server class and file names
- Rename to DynamicBuffer in some code and documentation
- Fix integer warnings in Windows builds
- Add 32 and 64 bit Windows build support
- Update README for build instructions and more
- Add repository and documentation banners
1.0.0-b10
- Fix compilation warnings
- Add websocketpp comparison to HTML documentation
1.0.0-b9
- Fix CMakeLists.txt
1.0.0-b8
- Fix include in example code
- Fix basic_headers rfc2616 Section 4.2 compliance
1.0.0-b7
- Fix prepare by calling init. prepare() can throw depending on the implementation of Writer. Publicly provided beast::http writers never throw.
- Fixes to example HTTP server
- Fully qualify ambiguous calls to read and parse
- Remove deprecated http::stream wrapper
- Example HTTP server now calculates the MIME-type
- Fixes and documentation for teardown and use with SSL:
- Add example code to rfc7230 javadocs
- Remove extraneous header file <beast/http/status.hpp>
- Add skip_body parser option
1.0.0-b6
- Use SFINAE on return values
- Use beast::error_code instead of nested types
- Tidy up use of GENERATING_DOCS
- Remove obsolete RFC2616 functions
- Add message swap members and free functions
- Add HTTP field value parser containers: ext_list, param_list, token_list
- Fixes for some corner cases in basic_parser_v1
- Configurable limits on headers and body sizes in basic_parser_v1
API Changes:
-
ci_equal is moved to beast::http namespace, in rfc7230.hpp
-
"DynamicBuffer","dynabuf" renamed from "Streambuf", "streambuf". See: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4478.html#requirements.dynamic_buffers
-
basic_parser_v1 adheres to rfc7230 as strictly as possible