3 * Update reports for hybrid assessment
4 * Handle invalid deflate frames
5 * Install codecov on codecov CI targets only
7 --------------------------------------------------------------------------------
11 * Fix websocket permessage-deflate negotiation
13 --------------------------------------------------------------------------------
17 * Fix autobahn report link
19 --------------------------------------------------------------------------------
23 * Warn about upcoming API changes to certain concepts
24 * Fix name typo in http write test
26 --------------------------------------------------------------------------------
30 * Tidy up some documentation
32 --------------------------------------------------------------------------------
36 * Fix some integer warnings in 64-bit builds
37 * Fix utf8_checker test failures
38 * Fix signature for async_read_some, and tests
39 * Tidy up basic_parser
40 * Some basic_fields special members are protected
42 --------------------------------------------------------------------------------
46 * Revisit boost library min/max guidance
48 --------------------------------------------------------------------------------
52 * Tidy up some documentation
54 --------------------------------------------------------------------------------
58 * ConstBufferSequence mandates pointer equivalence
59 * Add FieldsWriter constructor requirement
60 * Tidy up some documented constructor syntax
62 --------------------------------------------------------------------------------
66 * Tidy up message doc image
68 --------------------------------------------------------------------------------
72 * Fix typo in example server help text
74 --------------------------------------------------------------------------------
78 * Add static_buffer_base default constructor definition
80 --------------------------------------------------------------------------------
84 * Remove const&& overload of message::body
86 --------------------------------------------------------------------------------
90 * Tidy up project folders in CMakeLists.txt
91 * Rename Cmake variables for clarity
92 * Add ref-qualified overloads for message::body
93 * Tidy up FieldsReader doc
97 * Fields::writer replaces Fields::reader
98 * BodyReader and BodyWriter names are swapped
102 * Rename reader to writer for user defined Fields
103 * Swap the reader and writer names for user defined Body types
104 * Swap use of is_body_reader and is_body_writer
106 --------------------------------------------------------------------------------
110 * basic_fields returns const values
111 * Set SNI hostname in example SSL clients
113 --------------------------------------------------------------------------------
117 * Tidy up fallthrough warning
118 * Remove cxx11_sfinae_expr build requirement from tests
120 --------------------------------------------------------------------------------
124 * Add autobahn test report to doc
125 * Documentation tidying
126 * Fix prepare_payload: chunked is HTTP/1.1
128 --------------------------------------------------------------------------------
133 * Add explicit-failures-markup.xml
137 * Add message::need_eof
138 * Use message::need_eof in example servers
139 * Use synchronous writes in chunk output example
143 * Fix utf8 validation for autobahn
144 * Temporarily disable utf8 validation tests
145 * Tidy up fast websocket server host names
149 * Remove serializer::keep_alive
150 * Remove serializer::chunked
151 * Add has_content_length_impl to Fields
152 * Add message::has_content_length
153 * Rename some basic_parser observers
157 * Call message::keep_alive instead of serializer::keep_alive
158 * Call serializer::get::chunked instead of serializer::chunked
159 * Implement has_content_length_impl for user-defined Fields
160 * Remove the "is_" prefix from call sites invoking certain basic_parser members
162 --------------------------------------------------------------------------------
166 * Add BOOST_BEAST_NO_POSIX_FADVISE
167 * Version command line option for HTTP client examples
168 * More Jamfile compiler requirements for tests
170 --------------------------------------------------------------------------------
174 * Add CppCon2017 presentation link
176 * Update stream write documentation for end of stream changes
177 * Tidy up unused variable warnings
178 * Don't return end_of_stream on win32 file body writes
180 * Fix shadowing in session_alloc
181 * Fix executor type compilation
182 * Add Travis tests with the default compilers
183 * Update Boost.WinAPI usage to the new location and namespace.
184 * Fix buffered_read_stream async_read_some signature
186 --------------------------------------------------------------------------------
192 * Update for Net-TS Asio
196 * Use BOOST_ASIO_HANDLER_TYPE instead of handler_type
197 * Use BOOST_ASIO_INITFN_RESULT_TYPE instead of async_result
198 * Use boost::asio::async_completion
199 * Use boost::asio::is_dynamic_buffer
200 * Use boost::asio::is_const_buffer_sequence
201 * Use boost::asio::is_mutable_buffer_sequence
202 * boost::asio::associated_allocator_t replaces handler_alloc
204 --------------------------------------------------------------------------------
208 * Fix for a test matrix compiler
209 * Fix basic_fields javadoc
213 * http write returns success on connection close
217 * Add code to servers to close the connection after successfully
218 writing a message where `message::keep_alive()` would return `false`.
220 --------------------------------------------------------------------------------
224 * Use unit-test subtree
225 * Fix spurious race in websocket close test
226 * Check compiler feature in Jamfile
227 * Clear previous message fields in parser
229 --------------------------------------------------------------------------------
233 * Add test for issue 807
234 * assert on empty buffer in websocket read
235 * Fix zlib symbol conflicts
236 * CMake 3.5.1 is required
237 * config.hpp is not a public header
238 * Add missing case in error test
240 --------------------------------------------------------------------------------
244 * Add test for issue 802
245 * Fix enum and non-enum in conditional exp. warning
247 --------------------------------------------------------------------------------
251 * Fix spurious strand_ in advanced_server_flex
252 * OpenSSL targets are optional (CMake)
254 --------------------------------------------------------------------------------
258 * Tidy up doc badge links
260 --------------------------------------------------------------------------------
264 * file_win32 opens for read-only in shared mode
265 * Remove unused strands in server examples
266 * Update build instructions
267 * Doc root is at index.html
271 * Fix writing header into std::ostream
273 --------------------------------------------------------------------------------
277 * Add buffers_to_string
281 * buffers_suffix replaces consuming_buffers
282 * buffers_prefix replaces buffer_prefix
283 * buffers_prefix_view replaces buffer_prefix_view
284 * buffers_front replaces buffer_front
285 * buffers_cat replaces buffer_cat
286 * buffers_cat_view replaces buffer_cat_view
287 * Remove buffers_suffix::get
291 * Use buffers_suffix instead of consuming_buffers
292 * Use buffers_prefix instead of buffer_prefix
293 * Use buffers_prefix_view instead of buffer_prefix_view
294 * Use buffers_front instead of buffer_front
295 * Use buffers_cat instead of buffer_cat
296 * Use buffers_cat_view instead of buffer_cat_view
297 * Avoid calling buffers_suffix::get
299 --------------------------------------------------------------------------------
305 * message::body is a member function
306 * message::version is a member function
310 * Call member function message::body instead of accessing
311 the data member at call sites.
313 * Call member function message::version instead of accessing
314 the version member at call sites.
316 --------------------------------------------------------------------------------
320 * Update README.md master doc link
322 --------------------------------------------------------------------------------
328 --------------------------------------------------------------------------------
332 * Fix handler signature in async_read_header
333 * Remove field_range copy constructor
335 --------------------------------------------------------------------------------
339 * Update websocket notes
343 * WebSocket writes return the bytes transferred
345 * HTTP reads and writes return bytes transferred
349 * Modify websocket write completion handlers to receive
350 the extra std::size_t bytes_transferred parameter.
352 * Modify HTTP read and/or write completion handlers to
353 receive the extra std::size_t bytes_transferred parameter.
355 --------------------------------------------------------------------------------
361 * Fix utf8 check split code point at buffer end
362 * Refactor stream operations and tests plus coverage
363 * Suspended ops special members
365 --------------------------------------------------------------------------------
369 * Refactor stream open state variable
370 * Refactor websocket stream members
371 * Refactor websocket stream: fixes and tests
372 * Add test::stream::lowest_layer
373 * Fix invalid iterator in test reporter
375 --------------------------------------------------------------------------------
379 * refactor test::stream
383 * Fix async_read_some handler signature
384 * websocket close fixes and tests
385 * websocket handshake uses coroutine
386 * websocket ping tests
387 * Fix websocket close_op resume state
388 * websocket write tests
389 * split up websocket tests
390 * websocket read tests
394 * websocket accept refactoring
398 * Do not call websocket accept overloads which take
399 both a message and a buffer sequence, as it is
402 --------------------------------------------------------------------------------
406 * Fix argument parsing in HTTP examples
407 * Don't use async_write_msg in examples
409 --------------------------------------------------------------------------------
417 * Fix done state for WebSocket reads
418 * Fix utf8 check for compressed frames
419 * Rename frame and header buffer types
421 --------------------------------------------------------------------------------
425 * Dynamic buffer input areas are mutable
426 * Add flat_static_buffer::reset
430 * Fix for basic_parser::skip(true) and docs
434 * websocket test improvements
435 * Remove obsolete write_op
441 * Refactor read_op + fail_op
442 * Websocket close will automatically drain
443 * Autobahn|Testsuite fixes
444 * Tidy up utf8_checker and tests
446 --------------------------------------------------------------------------------
450 * Fix compile error in websocket snippet
451 * Tidy up Jamfile and tests
453 --------------------------------------------------------------------------------
457 * Remove unused include
458 * Use #error in config.hpp
459 * Only set -std=c++11 on Travis
460 * Only set /permissive- on Appveyor
461 * Tidy up some test warnings
462 * tools/ renamed from build/
466 * Fix pausation::save
468 --------------------------------------------------------------------------------
472 * Boost test matrix fixes
473 * Tidy up allocator usage
474 * Example HTTP server fixes
476 --------------------------------------------------------------------------------
480 * Section headings in examples
482 --------------------------------------------------------------------------------
486 * Refactor all examples
488 --------------------------------------------------------------------------------
492 * Fix doc convenience includes
494 * Remove unused test header
496 * Reorder define test macro params
497 * vcxproj workaround for include symlinks
498 * Add variadic min/max
502 * Remove obsolete frame tests
503 * Refactor fail/clode code
504 * Call do_fail from read_some
505 * eof on accept returns error::closed
506 * Fix stream::read_size_hint calculation
511 * Calls to stream::close and stream::async_close will
512 automatically perform the required read operations
514 * drain_buffer is removed
516 * role_type replaces teardown_tag
520 * Remove calling code which drains the connection after
521 calling stream::close or stream::async_close
523 * Replace code which uses drain_buffer. For websocket::stream,
524 it is no longer necessary to manually drain the connection
527 * Modify signatures of teardown and async_teardown to use
528 role_type instead of teardown_tag
530 * Change calls to teardown and async_teardown to pass the
531 correct role_type, client or server, depending on context.
533 --------------------------------------------------------------------------------
537 * Log the value of LIB_DIR for doc builds (debug)
538 * Use correct handler signature in fail_op
541 --------------------------------------------------------------------------------
545 * basic_fields::key_compare is noexcept
546 * Fix bench-zlib cmake
547 * Use unique names Jam projects
548 * Trim utf8 checker test
550 --------------------------------------------------------------------------------
556 --------------------------------------------------------------------------------
560 * Move bench/ to test/
561 * Move extras/ to test/
562 * Use <valgrind> property
563 * Rename wsload compile target
565 * Update boostorg links
568 * Less compression on websocket test
570 --------------------------------------------------------------------------------
574 * Tidy up Travis build scripts
575 * Move scripts to build/
576 * Fix race in test::pipe
577 * close on test::pipe teardown
579 * Tidy up static_buffer braced init
581 * Add valgrind variant, fix false positives
583 --------------------------------------------------------------------------------
587 * Use off-site Quick Start link temporarily
589 --------------------------------------------------------------------------------
593 * Unset BOOST_COROUTINES_NO_DEPRECATION_WARNING
595 --------------------------------------------------------------------------------
599 * Fix typo in test/CMakeLists.txt
600 * basic_fields::value_type is not copyable
601 * Update repository links in source comments
602 * Ignore Content-Length in some cases
603 * Tidy up doc snippet paths
604 * Use off-site doc link
606 --------------------------------------------------------------------------------
610 * Adjust redirect html
611 * Don't build pre-C++11
612 * source.dox is path-independent
613 * Tidy up namespace qualifiers
614 * Tidy up MSVC CMakeLists.txt
615 * Optimize buffered_read_stream
616 * constexpr in derived buffers
617 * Set BOOST_ASIO_NO_DEPRECATED
618 * Use Asio array optimization in static_buffer_base
619 * Rename wstest source file
620 * Use fopen_s on Windows
621 * Fix Appveyor script
622 * Update project metadata
623 * Move benchmarks to bench/
625 * Build stand-alone doc
626 * Update doc copyrights
627 * Refactor test build scripts
631 * Tidy up websocket javadocs
632 * Refactor accept, handshake ops
633 * Use read buffer instead of buffered stream
637 * control frame callbacks are non-const references
641 * Modify calls to set the control frame callback, to
642 pass non-const reference instances, and manage the
643 lifetime of the instance.
645 --------------------------------------------------------------------------------
649 * Fix websocket read of zero length message
650 * Fix typo in equal_range
651 * Output to integrated documentation
653 --------------------------------------------------------------------------------
657 * Fix CONTRIBUTING.md links
659 --------------------------------------------------------------------------------
663 * Update doc links in README.md
664 * Refactor tests Jamfile
665 * Don't use program_options
669 * Fix uninitialized frame done
671 --------------------------------------------------------------------------------
675 * Update appveyor for Boost branch
676 * Rename to BEAST_EXPECT
677 * variant fixes and tests
678 * Update README, add CONTRIBUTING.md and CODE_OF_CONDUCT.md
680 --------------------------------------------------------------------------------
685 * Remove use of lexical_cast
688 * Add local-travis.sh
690 * Update CMakeLists.txt for boost
691 * Update documentation for boost
693 * Remove spurious declaration
695 * Normalize doc build scripts
696 * Use configured doxygen and xsltproc
697 * Fix Deferred Body Type Example Documentation
698 * Add library metadata
702 * websocket read returns the number of bytes inserted
706 * Change the signature of completion handlers used with
707 websocket::stream::async_read to void(error_code, std::size_t)
709 --------------------------------------------------------------------------------
714 * Tidy up test warning
716 --------------------------------------------------------------------------------
720 * Tidy up buffer_front
721 * static_buffer::consume improvement
722 * multi_buffer is type-check friendly
723 * bind_handler allows placeholders
724 * Add consuming_buffers::get
728 * WebSocket read optimization
732 * websocket::stream::read_buffer_size is removed
736 * Remove calls websocket::stream::read_buffer_size
737 * Use read_some and write_some instead of read_frame and write_frame
739 --------------------------------------------------------------------------------
743 * Add flat_static_buffer::mutable_data
745 * Add wstest compression option
746 * Turn some flat_static_buffer_tests on
748 * read_some, async_read_some return bytes used
749 * Fix private timer::clock_type
753 * Add wstest compression option
754 * Fix buffer lifetime in websocket write
762 * Callers who depend on static_buffer returning sequences of
763 exactly length one should switch to flat_static_buffer.
765 --------------------------------------------------------------------------------
769 * Documentation tidying
770 * is_invocable works with move-only types
771 * Use std::function and reference wrapper
772 * Add session_alloc to example/common
773 * Silence spurious warning
777 * Fix extraneous argument in async_write_header
782 * Add rd_close_ to websocket stream state
783 * stream uses flat_buffer
784 * accept requires a message
785 * Add wstest benchmark tool
789 * Rename to flat_static_buffer and flat_static_buffer_base
793 * Rename static_buffer to flat_static_buffer_base
794 * Rename static_buffer_n to flat_static_buffer
796 --------------------------------------------------------------------------------
800 * Pass string_view by value
801 * better is_final on empty_base_optimization
802 * Suppress incorrect GCC warning
803 * multi_buffer ctor is explicit
804 * File is not copy-constructible
808 * Refactor basic_parser, chunk parsing:
812 * Adjust signatures for required members of user-defined
813 subclasses of basic_parser
815 * Use the new basic_parser chunk callbacks for accessing
816 chunk extensions and chunk bodies.
818 --------------------------------------------------------------------------------
823 * Add basic_dynamic_body.hpp
824 * Shrink buffer_prefix_view
825 * Remove unused file_path
826 * Add basic_file_body.hpp
827 * buffers_ref is Assignable
831 * Shrink chunk header buffer sequence size
835 * Refactor chunked-encoding serialization
839 * Remove references to ChunkDecorators. Use the new chunk-encoding
840 buffer sequences to manually produce a chunked payload body in
841 the case where control over the chunk-extensions and/or trailers
844 --------------------------------------------------------------------------------
848 * Remove spurious fallthrough guidance
850 --------------------------------------------------------------------------------
856 * Use make_unique_noinit
857 * Fix warning in zlib
858 * Header file tidying
859 * Tidy up FieldsReader doc
860 * Add Boost.Locale utf8 benchmark comparison
861 * Tidy up dstream for existing Boost versions
862 * Tidy up file_posix unused variable
863 * Fix warning in root ca declaration
867 * Tidy up basic_string_body
869 * span, string, vector bodies are public
870 * Fix spurious uninitialized warning
871 * fields temp string uses allocator
875 * Add message::keep_alive()
876 * Add message::chunked() and message::content_length()
877 * Remove string_view_body
881 * Change user defined implementations of Fields and
882 FieldsReader to meet the new requirements.
884 * Use span_body<char> instead of string_view_body
886 --------------------------------------------------------------------------------
890 * file_posix works without large file support
892 --------------------------------------------------------------------------------
896 * Always go through write_some
898 * BodyReader may construct from a non-const message
899 * Add serializer::get
900 * Add serializer::chunked
901 * Serializer members are not const
902 * serializing file_body is not const
903 * Add file_body_win32
904 * Fix parse illegal characters in obs-fold
905 * Disable SSE4.2 optimizations
909 * Rename to serializer::keep_alive
910 * BodyReader, BodyWriter use two-phase init
914 * Use serializer::keep_alive instead of serializer::close and
915 take the logical NOT of the return value.
917 * Modify instances of user-defined BodyReader and BodyWriter
918 types to perfrom two-phase initialization, as per the
919 updated documented type requirements.
921 --------------------------------------------------------------------------------
925 * Use file_body for valid requests, string_body otherwise.
926 * Construct buffer_prefix_view in-place
927 * Shrink serializer buffers using buffers_ref
928 * Tidy up BEAST_NO_BIG_VARIANTS
929 * Shrink serializer buffers using buffers_ref
930 * Add serializer::limit
932 * Using SSE4.2 intrinsics in basic_parser if available
934 --------------------------------------------------------------------------------
938 * Add file_stdio and File concept
941 * Remove common/file_body.hpp
943 * Fix Beast include directories for cmake targets
944 * remove redundant flush() from example
946 --------------------------------------------------------------------------------
951 * Verify certificates in SSL clients
953 * Initialize local variable in basic_parser
958 * basic_parser optimizations
959 * Add basic_parser tests
963 * Refactor header and message constructors
964 * serializer::next replaces serializer::get
968 * Evaluate each message constructor call site and
969 adjust the constructor argument list as needed.
971 * Use serializer::next instead of serializer::get at call sites
973 --------------------------------------------------------------------------------
979 * Tidy up set payload in http-server-fast
980 * Refine Body::size specification
981 * Newly constructed responses have a 200 OK result
982 * Refactor file_body for best practices
983 * Add http-server-threaded example
984 * Documentation tidying
985 * Various improvements to http_server_fast.cpp
989 * Add websocket-server-async example
991 --------------------------------------------------------------------------------
995 * Fix extra ; warning
996 * Documentation revision
997 * Fix spurious on_chunk invocation
998 * Call prepare_payload in HTTP example
999 * Check trailers in test
1000 * Fix buffer overflow handling for string_body and mutable_body
1001 * Concept check in basic_dynamic_body
1002 * Tidy up http_sync_port error check
1003 * Tidy up Jamroot /permissive-
1007 * Fine tune websocket op asserts
1008 * Refactor websocket composed ops
1009 * Allow close, ping, and write to happen concurrently
1010 * Fix race in websocket read op
1011 * Fix websocket write op
1012 * Add cmake options for examples and tests
1016 * Return `std::size_t` from `Body::writer::put`
1020 * Return the number of bytes actually transferred from the
1021 input buffers in user defined `Body::writer::put` functions.
1023 --------------------------------------------------------------------------------
1027 * Serialize in one step when possible
1028 * Add basic_parser header and body limits
1029 * Add parser::on_header to set a callback
1030 * Fix BEAST_FALLTHROUGH
1031 * Fix HEAD response in file_service
1035 * Rename to message::base
1036 * basic_parser default limits are now 1MB/8MB
1040 * Change calls to message::header_part() with message::base()
1042 * Call body_limit and/or header_limit as needed to adjust the
1043 limits to suitable values if the defaults are insufficient.
1045 --------------------------------------------------------------------------------
1049 * basic_parser optimizations
1050 * Use BEAST_FALLTHROUGH to silence warnings
1051 * Add /permissive- to msvc toolchain
1053 --------------------------------------------------------------------------------
1057 * Split common tests to a new project
1058 * Small speed up in fields comparisons
1059 * Adjust buffer size in fast server
1060 * Use string_ref in older Boost versions
1061 * Optimize field lookups
1062 * Add const_body, mutable_body to examples
1063 * Link statically on cmake MSVC
1067 * Change BodyReader, BodyWriter requirements
1068 * Remove BodyReader::is_deferred
1069 * http::error::bad_target replaces bad_path
1073 * Change user defined instances of BodyReader and BodyWriter
1074 to meet the new requirements.
1076 * Replace references to http::error::bad_path with http::error::bad_target
1078 --------------------------------------------------------------------------------
1082 * Fix doc example link
1083 * Add http-server-small example
1084 * Merge stream_base to stream and tidy
1085 * Use boost::string_view
1086 * Rename to http-server-fast
1087 * Appveyor use Boost 1.64.0
1088 * Group common example headers
1092 * control_callback replaces ping_callback
1096 * Change calls to websocket::stream::ping_callback to use
1097 websocket::stream::control_callback
1099 * Change user defined ping callbacks to have the new
1100 signature and adjust the callback definition appropriately.
1102 --------------------------------------------------------------------------------
1106 * string_param optimizations
1107 * Add serializer request/response aliases
1108 * Make consuming_buffers smaller
1109 * Fix costly potential value-init in parser
1110 * Fix unused parameter warning
1111 * Handle bad_alloc in parser
1112 * Tidy up message piecewise ctors
1113 * Add header aliases
1114 * basic_fields optimizations
1115 * Add http-server example
1116 * Squelch spurious warning on gcc
1118 --------------------------------------------------------------------------------
1122 * Enable narrowing warning on msvc cmake
1123 * Fix integer types in deflate_stream::bi_reverse
1124 * Fix narrowing in static_ostream
1125 * Fix narrowing in ostream
1126 * Fix narrowing in inflate_stream
1127 * Fix narrowing in deflate_stream
1128 * Fix integer warnings
1129 * Enable unused variable warning on msvc cmake
1131 --------------------------------------------------------------------------------
1135 * Simplify buffered_read_stream composed op
1136 * Simplify ssl teardown composed op
1137 * Simplify websocket write_op
1138 * Exemplars are compiled code
1139 * Better User-Agent in examples
1140 * async_write requires a non-const message
1142 * Add link_directories to cmake
1146 * Remove make_serializer
1150 * Replace calls to make_serializer with variable declarations
1152 --------------------------------------------------------------------------------
1156 * Use std::to_string instead of lexical_cast
1157 * Don't use cached Boost
1158 * Put num_jobs back up on Travis
1159 * Only build and run tests in variant=coverage
1160 * Move benchmarks to a separate project
1161 * Only run the tests under ubasan
1162 * Tidy up CMakeLists.txt
1164 * Control running with valgrind explicitly
1166 --------------------------------------------------------------------------------
1170 * Remove libssl-dev from a Travis matrix item
1171 * Increase detail::static_ostream coverage
1172 * Add server-framework tests
1173 * Doc fixes and tidy
1174 * Tidy up namespaces in examples
1175 * Clear the error faster
1176 * Avoid explicit operator bool for error
1177 * Add http::is_fields trait
1178 * Squelch harmless not_connected errors
1179 * Put slow tests back for coverage builds
1183 * parser requires basic_fields
1184 * Refine FieldsReader concept
1185 * message::prepare_payload replaces message::prepare
1189 * Callers using `parser` with Fields types other than basic_fields
1190 will need to create their own subclass of basic_parser to work
1191 with their custom fields type.
1193 * Implement chunked() and keep_alive() for user defined FieldsReader types.
1195 * Change calls to msg.prepare to msg.prepare_payload. For messages
1196 with a user-defined Fields, provide the function prepare_payload_impl
1197 in the fields type according to the Fields requirements.
1199 --------------------------------------------------------------------------------
1203 * Remove Spirit dependency
1204 * Use generic_cateogry for errno
1205 * Reorganize SSL examples
1206 * Tidy up some integer conversion warnings
1207 * Add message::header_part()
1208 * Tidy up names in error categories
1209 * Flush the output stream in the example
1210 * Clean close in Secure WebSocket client
1211 * Add server-framework SSL HTTP and WebSocket ports
1212 * Fix shadowing warnings
1213 * Tidy up http-crawl example
1214 * Add multi_port to server-framework
1215 * Tidy up resolver calls
1217 * Don't run slow tests on certain targets
1221 * header::version is unsigned
1222 * status-codes is unsigned
1224 --------------------------------------------------------------------------------
1228 * String comparisons are public interfaces
1229 * Fix response message type in async websocket accept
1230 * New server-framework, full featured server example
1232 --------------------------------------------------------------------------------
1236 * Integrated Beast INTERFACE (cmake)
1237 * Fix base64 alphabet
1238 * Remove obsolete doc/README.md
1242 * Change Body::size signature (API Change):
1246 * For any user-defined models of Body, change the function signature
1247 to accept `value_type const&` and modify the function definition
1250 --------------------------------------------------------------------------------
1254 * Fix unaligned reads in utf8-checker
1255 * Qualify size_t in message template
1256 * Reorganize examples
1257 * Specification for http read
1258 * Avoid `std::string` in websocket
1259 * Fix basic_fields insert ordering
1260 * basic_fields::set optimization
1261 * basic_parser::put doc
1262 * Use static string in basic_fields::reader
1263 * Remove redundant code
1264 * Fix parsing chunk size with leading zeroes
1265 * Better message formal parameter names
1269 * `basic_fields::set` renamed from `basic_fields::replace`
1273 * Rename calls to `basic_fields::replace` to `basic_fields::set`
1275 --------------------------------------------------------------------------------
1279 * Fix message.hpp javadocs
1280 * Fix warning in basic_parser.cpp
1281 * Integrate docca for documentation and tidy
1283 --------------------------------------------------------------------------------
1287 * Add provisional IANA header field names
1288 * Add string_view_body
1289 * Call on_chunk when the extension is empty
1290 * HTTP/1.1 is the default version
1291 * Try harder to find Boost (cmake)
1293 * More basic_parser tests
1294 * Add an INTERFACE cmake target
1295 * Convert buffer in range loops
1297 --------------------------------------------------------------------------------
1301 * Don't allocate memory to handle obs-fold
1302 * Avoid a parser allocation using non-flat buffer
1303 * read_size replaces read_size_helper
1305 --------------------------------------------------------------------------------
1309 * static_buffer coverage
1310 * flat_buffer coverage
1311 * multi_buffer coverage
1312 * consuming_buffers members and coverage
1313 * basic_fields members and coverage
1315 * Retain ownership when reading using a message
1316 * Fix incorrect use of [[fallthrough]]
1320 * basic_fields refactor
1322 --------------------------------------------------------------------------------
1326 * Fix basic_parser::maybe_flatten
1327 * Fix read_size_helper usage
1329 --------------------------------------------------------------------------------
1333 * flat_buffer is an AllocatorAwareContainer
1334 * Add drain_buffer class
1338 * `auto_fragment` is a member of `stream`
1339 * `binary`, `text` are members of `stream`
1340 * read_buffer_size is a member of `stream`
1341 * read_message_max is a member of `stream`
1342 * `write_buffer_size` is a member of `stream`
1343 * `ping_callback` is a member of stream
1344 * Remove `opcode` from `read`, `async_read`
1345 * `read_frame` returns `bool` fin
1346 * `opcode` is private
1347 * finish(error_code&) is a BodyReader requirement
1351 * Change call sites which use `auto_fragment` with `set_option`
1352 to call `stream::auto_fragment` instead.
1354 * Change call sites which use message_type with `set_option`
1355 to call `stream::binary` or `stream::text` instead.
1357 * Change call sites which use `read_buffer_size` with `set_option` to
1358 call `stream::read_buffer_size` instead.
1360 * Change call sites which use `read_message_max` with `set_option` to
1361 call `stream::read_message_max` instead.
1363 * Change call sites which use `write_buffer_size` with `set_option` to
1364 call `stream::write_buffer_size` instead.
1366 * Change call sites which use `ping_callback1 with `set_option` to
1367 call `stream::ping_callback` instead.
1369 * Remove the `opcode` reference parameter from calls to synchronous
1370 and asynchronous read functions, replace the logic with calls to
1371 `stream::got_binary` and `stream::got_text` instead.
1373 * Remove the `frame_info` parameter from all read frame call sites
1375 * Check the return value 'fin' for calls to `read_frame`
1377 * Change ReadHandlers passed to `async_read_frame` to have
1378 the signature `void(error_code, bool fin)`, use the `bool`
1379 to indicate if the frame is the last frame.
1381 * Remove all occurrences of the `opcode` enum at call sites
1383 --------------------------------------------------------------------------------
1387 * Fix operator<< for header
1389 * Fix file_body::get() not setting the more flag correctly
1390 * Use BOOST_FALLTHROUGH
1391 * Use BOOST_STRINGIZE
1392 * DynamicBuffer benchmarks
1393 * Add construct, destroy to handler_alloc
1394 * Fix infinite loop in basic_parser
1398 * Tune up static_buffer
1399 * multi_buffer implementation change
1403 * Call sites passing a number to multi_buffer's constructor
1404 will need to be adjusted, see the corresponding commit message.
1406 --------------------------------------------------------------------------------
1410 * parser is constructible from other body types
1411 * Add field enumeration
1412 * Use allocator more in basic_fields
1413 * Fix basic_fields allocator awareness
1414 * Use field in basic_fields and call sites
1415 * Use field in basic_parser
1416 * Tidy up basic_fields, header, and field concepts
1417 * Fields concept work
1418 * Body documentation work
1419 * Add missing handler_alloc nested types
1420 * Fix chunk delimiter parsing
1421 * Fix test::pipe read_size
1422 * Fix chunk header parsing
1426 * Remove header_parser
1427 * Add verb to on_request for parsers
1429 * Protect basic_fields special members
1430 * Remove message connection settings
1431 * Remove message free functions
1432 * Remove obsolete serializer allocator
1433 * http read_some, async_read_some don't return bytes
1435 --------------------------------------------------------------------------------
1439 * Use <iosfwd> instead of <ostream>
1443 * Add HEAD request example
1447 * Refactor method and verb
1448 * Canonicalize string_view parameter types
1449 * Tidy up empty_body writer error
1450 * Refactor header status, reason, and target
1452 --------------------------------------------------------------------------------
1456 * Make buffer_prefix_view public
1457 * Remove detail::sync_ostream
1458 * Tidy up core type traits
1462 * Tidy up chunk decorator
1463 * Rename to buffer_cat_view
1464 * Consolidate parsers to parser.hpp
1467 --------------------------------------------------------------------------------
1471 * Disable operator<< for buffer_body
1472 * buffer_size overload for basic_multi_buffer::const_buffers_type
1473 * Fix undefined behavior in pausation
1474 * Fix leak in basic_flat_buffer
1478 * Refactor treatment of request-method
1479 * Refactor treatment of status code and obsolete reason
1480 * Refactor HTTP serialization and parsing
1482 --------------------------------------------------------------------------------
1487 * Documentation work
1491 * Remove HTTP header aliases
1492 * Refactor HTTP serialization
1493 * Refactor type traits
1495 --------------------------------------------------------------------------------
1499 * Workaround for boost::asio::basic_streambuf type check
1500 * Fix message doc image
1501 * Better test::enable_yield_to
1502 * Fix header::reason
1503 * Documentation work
1504 * buffer_view skips empty buffer sequences
1505 * Disable reverse_iterator buffer_view test
1507 --------------------------------------------------------------------------------
1511 * Use BOOST_THROW_EXCEPTION
1512 * Tidy up read_size_helper and dynamic buffers
1513 * Require Boost 1.58.0 or later
1514 * Tidy up and make get_lowest_layer public
1515 * Use BOOST_STATIC_ASSERT
1516 * Fix async return values in docs
1517 * Fix README websocket example
1518 * Add buffers_adapter regression test
1519 * Tidy up is_dynamic_buffer traits test
1520 * Make buffers_adapter meet requirements
1522 --------------------------------------------------------------------------------
1526 * Require Boost 1.64.0
1527 * Fix strict aliasing warnings in buffers_view
1528 * Tidy up buffer_prefix overloads and test
1529 * Add write limit to test::string_ostream
1530 * Additional constructors for consuming_buffers
1532 --------------------------------------------------------------------------------
1537 * Add formal review notes
1538 * Make buffers_view a public interface
1540 --------------------------------------------------------------------------------
1544 * Trim Appveyor matrix rows
1545 * Concept revision and documentation
1546 * Remove coveralls integration
1547 * Tidy up formal parameter names
1551 * Tidy up websocket::close_code enum and constructors
1555 * Return http::error::end_of_stream on HTTP read eof
1556 * Remove placeholders
1557 * Rename prepare_buffer(s) to buffer_prefix
1558 * Remove handler helpers, tidy up hook invocations
1560 --------------------------------------------------------------------------------
1564 * Add to_static_string
1565 * Consolidate get_lowest_layer in type_traits.hpp
1566 * Fix basic_streambuf movable trait
1567 * Tidy up .travis.yml
1569 --------------------------------------------------------------------------------
1573 Beast versions are now identified by a single integer which
1574 is incremented on each merge. The macro BEAST_VERSION
1575 identifies the version number, currently at 39. A version
1576 setting commit will always be at the tip of the master
1577 and develop branches.
1579 * Use beast::string_view alias
1580 * Fixed braced-init error with older gcc
1584 * Tidy up basic_parser javadocs
1588 * Add websocket async echo ssl server test:
1589 * Fix eof error on ssl::stream shutdown
1593 * Refactor http::header contents
1594 * New ostream() returns dynamic buffer output stream
1595 * New buffers() replaces to_string()
1596 * Rename to multi_buffer, basic_multi_buffer
1597 * Rename to flat_buffer, basic_flat_buffer
1598 * Rename to static_buffer, static_buffer_n
1599 * Rename to buffered_read_stream
1600 * Harmonize concepts and identifiers with net-ts
1601 * Tidy up HTTP reason_string
1603 --------------------------------------------------------------------------------
1607 * Refactor static_string
1609 * Use static_string for WebSocket handshakes
1610 * Simplify get_lowest_layer test
1611 * Add test_allocator to extras/test
1612 * More flat_streambuf tests
1613 * WebSocket doc work
1614 * Prevent basic_fields operator[] assignment
1618 * Refactor WebSocket error codes
1619 * Remove websocket::keep_alive option
1621 --------------------------------------------------------------------------------
1625 * CMake hide command lines in .vcxproj Output windows"
1626 * Rename to detail::is_invocable
1627 * Rename project to http-bench
1628 * Fix flat_streambuf
1629 * Add ub sanitizer blacklist
1630 * Add -funsigned-char to asan build target
1631 * Fix narrowing warning in table constants
1635 * Add is_upgrade() free function
1636 * Document websocket::stream thread safety
1637 * Rename to websocket::detail::pausation
1641 * Provide websocket::stream accept() overloads
1642 * Refactor websocket decorators
1643 * Move everything in basic_fields.hpp to fields.hpp
1644 * Rename to http::dynamic_body, consolidate header
1646 --------------------------------------------------------------------------------
1652 --------------------------------------------------------------------------------
1656 * Add Appveyor build scripts and badge
1657 * Tidy up MSVC CMake configuration
1658 * Make close_code a proper enum
1659 * Add flat_streambuf
1660 * Rename to BEAST_DOXYGEN
1661 * Update .gitignore for VS2017
1662 * Fix README.md CMake instructions
1666 * New HTTP interfaces
1667 * Remove http::empty_body
1669 --------------------------------------------------------------------------------
1673 * Fix and tidy up CMake build scripts
1675 --------------------------------------------------------------------------------
1679 * Require Visual Studio 2015 Update 3 or later
1683 * Use fwrite return value in file_body
1687 * Set internal state correctly when writing frames
1688 * Add decorator unit test
1689 * Add write_frames unit test
1691 --------------------------------------------------------------------------------
1695 * Add io_service completion invariants test
1696 * Update CMake scripts for finding packages
1700 * Remove http Writer suspend and resume feature
1702 --------------------------------------------------------------------------------
1706 * Tidy up build settings
1707 * Add missing dynabuf_readstream member
1711 * Move the handler, don't copy it
1713 --------------------------------------------------------------------------------
1719 * Fix race in pings during reads
1720 * Fix race in close frames during reads
1721 * Fix race when write suspends
1722 * Allow concurrent websocket async ping and writes
1724 --------------------------------------------------------------------------------
1728 * Fix compilation error in non-template class
1729 * Document type-pun in buffer_cat
1730 * Correctly check ostream modifier (/extras)
1734 * Fix Body requirements doc
1735 * Fix illegal HTTP characters accepted as hex zero
1736 * Fix Writer return value documentation
1740 * Fix race in writes during reads
1743 --------------------------------------------------------------------------------
1747 * Split out and rename test stream classes
1748 * Restyle async result constructions
1749 * Fix HTTP split parse edge case
1751 --------------------------------------------------------------------------------
1755 * Tidy up tests and docs
1756 * Add documentation building instructions
1760 * Invoke callback on pings and pongs
1761 * Move basic_streambuf to streambuf.hpp
1763 --------------------------------------------------------------------------------
1767 * Tidy up warnings and tests
1769 --------------------------------------------------------------------------------
1773 * Fixes for WebSocket echo server
1774 * Fix 32-bit arm7 warnings
1775 * Remove unnecessary include
1776 * WebSocket server examples and test tidying
1777 * Fix deflate setup bug
1781 * Better handler_ptr
1783 --------------------------------------------------------------------------------
1787 * bjam use clang on MACOSX
1788 * Simplify Travis package install specification
1789 * Add optional yield_to arguments
1790 * Make decorator copyable
1791 * Add WebSocket permessage-deflate extension support
1793 --------------------------------------------------------------------------------
1797 * Tune websocket echo server for performance
1798 * Add file and line number to thrown exceptions
1799 * Better logging in async echo server
1800 * Add copy special members
1801 * Fix message constructor and special members
1802 * Travis CI improvements
1804 --------------------------------------------------------------------------------
1808 * Fix broken Intellisense
1809 * Implement the Asio deallocation-before-invocation guarantee
1810 * Add handler helpers
1811 * Avoid copies in handler_alloc
1812 * Update README.md example programs
1813 * Fix websocket stream read documentation
1814 * Disable Boost.Coroutine deprecation warning
1815 * Update documentation examples
1817 --------------------------------------------------------------------------------
1821 * Remove extraneous includes
1823 --------------------------------------------------------------------------------
1833 * Rename HTTP identifiers
1835 --------------------------------------------------------------------------------
1839 * Boost library min/max guidance
1840 * Improvements to code coverage
1841 * Use boost::lexical_cast instead of std::to_string
1842 * Fix prepare_buffers value_type
1843 * Fix consuming_buffers value_type
1848 * Make chunk_encode public
1849 * Add write, async_write, operator<< for message_headers
1850 * Add read, async_read for message_headers
1851 * Fix with_body example
1855 * Optimize utf8 validation
1856 * Optimize mask operations
1860 * Refactor message and message_headers declarations
1861 * prepared_buffers is private
1862 * consume_buffers is removed
1864 --------------------------------------------------------------------------------
1868 * Increase optimization settings for MSVC builds
1872 * Check invariants in parse_op:
1873 * Clean up message docs
1877 * Write buffer option does not change capacity
1878 * Close connection during async_read on close frame
1879 * Add pong, async pong to stream
1883 * Meet DynamicBuffer requirements for static_streambuf
1884 * Fix write_frame masking and auto-fragment handling
1888 * unit_test::suite fixes:
1889 - New overload of fail() specifies file and line
1890 - BEAST_EXPECTS only evaluates the reason string on a failure
1893 --------------------------------------------------------------------------------
1897 * Change implicit to default value in example
1898 * Tidy up some declarations
1899 * Fix basic_streambuf::capacity
1900 * Add basic_streambuf::alloc_size
1901 * Parser callbacks may not throw
1902 * Fix Reader concept doc typo
1903 * Add is_Reader trait
1904 * Tidy up basic_headers for documentation
1905 * Tidy up documentation
1906 * Add basic_parser_v1::reset
1907 * Fix handling of body_what::pause in basic_parser_v1
1908 * Add headers_parser
1909 * Engaged invokable is destructible
1910 * Improve websocket example in README.md
1911 * Refactor read_size_helper
1915 * Added init() to Reader requirements
1916 * Reader must be nothrow constructible
1917 * Reader is now constructed right before reading the body
1918 - The message passed on construction is filled in
1919 * Rework HTTP concepts:
1920 - Writer uses write instead of operator()
1921 - Refactor traits to use void_t
1922 - Remove is_ReadableBody, is_WritableBody
1923 - Add has_reader, has_writer, is_Reader, is_Writer
1924 - More friendly compile errors on failed concept checks
1925 * basic_parser_v1 requires all callbacks present
1926 * on_headers parser callback now returns void
1927 * on_body_what is a new required parser callback returning body_what
1929 --------------------------------------------------------------------------------
1933 * Make value optional in param-list
1934 * Frame processing routines are member functions
1935 * Fix on_headers called twice from basic_parser_v1
1936 * Constrain parser_v1 constructor
1937 * Improve first line serialization
1938 * Add pause option to on_headers interface
1939 * Refactor base_parser_v1 callback traits:
1940 * Refine Parser concept
1941 * Relax ForwardIterator requirements in FieldSequence
1942 * Fix websocket failure testing
1943 * Refine Writer concept and fix exemplar in documentation
1947 * Rename mask_buffer_size to write_buffer_size
1948 * Make auto_fragment a boolean option
1950 The message class hierarchy is refactored (breaking change):
1952 * One message class now models both HTTP/1 and HTTP/2 messages
1953 * message_v1, request_v1, response_v1 removed
1954 * New classes basic_request and basic_response model
1955 messages without the body.
1957 Error resolution: Callers should use message, request,
1958 and response instead of message_v1, request_v1, and
1959 response_v1 respectively.
1961 --------------------------------------------------------------------------------
1965 * rfc7230 section 3.3.2 compliance
1967 * Add Secure WebSocket example
1968 * Fix message_v1 constructor
1969 * Tidy up DynamicBuffer requirements
1970 * Tidy up error types and headers
1971 * Fix handling empty HTTP headers in parser_v1
1973 --------------------------------------------------------------------------------
1977 * Add missing rebind to handler_alloc
1978 * Fix error handling in http server examples
1979 * Fix CMake scripts for MinGW
1981 * Better WebSocket decorator
1982 * Update and tidy documentation
1984 --------------------------------------------------------------------------------
1988 * dstream improvements
1989 * Remove bin and bin64 directories
1990 * Tidy up .vcxproj file groupings
1992 --------------------------------------------------------------------------------
1996 * Use -p to print suites from unit test main.
1997 * BEAST_EXPECTS to add a reason string to test failures
1998 * Fix unit test runner to output all case names
1999 * Update README for build requirements
2000 * Rename to CHANGELOG.md
2002 --------------------------------------------------------------------------------
2006 * Set URI in generated WebSocket Upgrade requests
2007 * Rename echo server class and file names
2008 * Rename to DynamicBuffer in some code and documentation
2009 * Fix integer warnings in Windows builds
2010 * Add 32 and 64 bit Windows build support
2011 * Update README for build instructions and more
2012 * Add repository and documention banners
2014 --------------------------------------------------------------------------------
2018 * Fix compilation warnings
2019 * Add websocketpp comparison to HTML documentation
2021 --------------------------------------------------------------------------------
2025 * Fix CMakeLists.txt
2027 --------------------------------------------------------------------------------
2031 * Fix include in example code
2032 * Fix basic_headers rfc2616 Section 4.2 compliance
2034 --------------------------------------------------------------------------------
2038 * Fix prepare by calling init. prepare() can throw depending on the
2039 implementation of Writer. Publicly provided beast::http writers never throw.
2040 * Fixes to example HTTP server
2041 * Fully qualify ambiguous calls to read and parse
2042 * Remove deprecated http::stream wrapper
2043 * Example HTTP server now calculates the MIME-type
2044 * Fixes and documentation for teardown and use with SSL:
2045 * Add example code to rfc7230 javadocs
2046 * Remove extraneous header file <beast/http/status.hpp>
2047 * Add skip_body parser option
2049 --------------------------------------------------------------------------------
2053 * Use SFINAE on return values
2054 * Use beast::error_code instead of nested types
2055 * Tidy up use of GENERATING_DOCS
2056 * Remove obsolete RFC2616 functions
2057 * Add message swap members and free functions
2058 * Add HTTP field value parser containers: ext_list, param_list, token_list
2059 * Fixes for some corner cases in basic_parser_v1
2060 * Configurable limits on headers and body sizes in basic_parser_v1
2064 * ci_equal is moved to beast::http namespace, in rfc7230.hpp
2066 * "DynamicBuffer","dynabuf" renamed from "Streambuf", "streambuf". See:
2067 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4478.html#requirements.dynamic_buffers
2069 * basic_parser_v1 adheres to rfc7230 as strictly as possible
2071 --------------------------------------------------------------------------------