3 * https_get example sends the Host header
4 * Fix async_close error code when async_read times out
5 * Refactor zlib tests and fix enum typo
7 --------------------------------------------------------------------------------
11 * Async init-fns use the executor's default token
12 * Add basic_stream::rebind_executor
13 * Use automatically deduced return types for all async operations
14 * Support Concepts for completion token params
16 --------------------------------------------------------------------------------
20 * Fix leftovers in basic_parser corner case
22 --------------------------------------------------------------------------------
26 * Squelch spurious websocket timer assert
27 * Use the executor type in basic_stream timer
29 --------------------------------------------------------------------------------
34 * Add zlib tests and fixes
36 --------------------------------------------------------------------------------
40 * Add HTTP async client with system_executor example
41 * Add WebSocket async client with system_executor example
42 * Fix data race in HTTP server examples
43 * Fix data race in WebSocket examples
45 --------------------------------------------------------------------------------
49 * Silence unused variables
52 --------------------------------------------------------------------------------
56 * Fix /permissive- missing include
59 --------------------------------------------------------------------------------
63 * root_certificates.hpp is not for production
65 --------------------------------------------------------------------------------
69 * Add package for Travis config
70 * Fix signed/unsigned mismatch in file_stdio::seek
71 * basic_stream dtor cannot throw
72 * cmake: check policy first
73 * Add default dtors to satisfy -Wnon-virtual-dtor
74 * Multiple I/O of the same type is not supported
76 --------------------------------------------------------------------------------
80 * Fix some missing deduced return types in the docs
82 --------------------------------------------------------------------------------
86 * Fix outgoing websocket message compression
88 --------------------------------------------------------------------------------
92 * Handle overflow in max size calculation in `basic_dynamic_body`
93 * Fix unused variable warnings in tests
94 * Fix missing initializer warning in `basic_fields`
95 * Remove unused functions in `impl/static_string.hpp`
96 * Fix unused variable warning in `multi_buffer`
97 * Fix header-only compilation errors in some configurations
98 * Workaround for miscompilation in MSVC 14.2
100 --------------------------------------------------------------------------------
104 * Update documentation
106 --------------------------------------------------------------------------------
110 * Fix deallocate in multi_buffer
112 --------------------------------------------------------------------------------
116 * Deduplicate `websocket::read_size_hint` definition
117 * Fix UB in websocket read tests
118 * Remove redundant includes in websocket
119 * Simplify websocket::detail::prng
120 * Don't over-allocate in http::basic_fields
121 * Fix multi_buffer allocation alignment
122 * Tidy up buffers_range
124 --------------------------------------------------------------------------------
128 * More split compilation in rfc7230.hpp
129 * Qualify calls to `beast::iequals` in basic_parser.ipp
130 * More split compilation in websocket/detail/mask.hpp
131 * Cleanup transitive includes in beast/core/detail/type_traits.hpp
132 * Simplify generation of sec-websocket-key
133 * Move detail::base64 helpers to tests
134 * Remove redundant includes in core
136 --------------------------------------------------------------------------------
140 * Reduce the number of instantiations of filter_token_list
141 * Remove the use of `static_string` from `http::fields`
142 * Add gcc-9 to AzP CI test matrix
143 * Enable split compilation in http::basic_fields
144 * Remove redundant instation of `static_string` in websocket
145 * Remove redundant use of `asio::coroutine` in `flat_stream`
146 * Remove unused includes from `test::stream`
147 * Move `char_buffer` into a separate file
148 * Fix coverage collection in AzP CI
149 * Improve performance of `http::string_to_verb`
150 * Replace uses of `net::coroutine` with `asio::coroutine`
151 * Replace uses of `net::spawn` with `asio::spawn`
152 * Use `beast::read_size` in `detail::read`
154 --------------------------------------------------------------------------------
158 * Fix separate compilation in CI
159 * Fix clang inititalization warning in websocket
160 * Remove redundant use of `yield_to` in parser tests
161 * Add VS 2019 AzP CI matrix item
162 * Clean up typo in chat websocket javascript client
164 --------------------------------------------------------------------------------
168 * Add b2 features for compile-time options used in testing
169 * Remove redundant dependencies in http/server/fast example
170 * Remove experimental/unit_test/thread.hpp
171 * Use `if` statement in basic_stream::transfer_op
172 * Fix flat_buffer copy members
174 --------------------------------------------------------------------------------
178 * Remove uses of the deprecated `buffers` function
179 * Remove uses of deprecated methods in websocket tests
180 * Remove redundant use of `static_string`
181 * Remove redundant template in service_base
182 * Expand CI matrix using Azure Pipelines
183 * Make chat websocket javascript client more user friendly
184 * `allocator_traits::construct` is used for user-defined types
185 * Add 1-element specialization for `buffers_cat`
186 * Fix `buffers_cat` iterator tests
187 * Don't pessimize-move
188 * Use steady_timer type
189 * Preserve operation_aborted on partial message
191 --------------------------------------------------------------------------------
195 * Add idle ping suspend test
196 * Fix moved-from executor in idle ping timeout
198 --------------------------------------------------------------------------------
202 * Fix data race in test::stream::connect
203 * Fix UB in websocket close tests
204 * Fix uninitalized memory use in deflate_stream
205 * Fix gcc-8 warning in websocket::stream
207 --------------------------------------------------------------------------------
211 * Fix async_detect_ssl handler type
212 * member get_executor const-correctness
213 * Fix min/max on MSVC
214 * Relax requirements for vector_body
216 --------------------------------------------------------------------------------
220 * More std::string_view fixes
221 * CI copies to libs/beast
223 --------------------------------------------------------------------------------
227 * Clean up CI scripts
228 * detect_ssl uses bool
230 * Fix compilation on MSVC with std::string_view
231 * Replace static_string in parser
233 --------------------------------------------------------------------------------
237 * Use SaxonHE in reference generation
238 * Cleanup endianness conversions
239 * Set parser status and flags even if body_limit_ has been reached
241 --------------------------------------------------------------------------------
245 * Move friend function template definition
247 --------------------------------------------------------------------------------
251 * Don't use a moved-from handler
253 --------------------------------------------------------------------------------
257 * Fix async_base immediate completion
259 --------------------------------------------------------------------------------
263 * decorator ctor is explicit
265 --------------------------------------------------------------------------------
269 * decorator constructor is constrained
271 --------------------------------------------------------------------------------
275 * Tidy up declval in some traits
276 * Fix websocket keep-alive ping expiration
278 --------------------------------------------------------------------------------
283 * Tidy up file_stdio for VS2015
284 * Fix http::message constructor constraint
286 --------------------------------------------------------------------------------
290 * test::stream has deprecated lowest_layer for ssl
291 * MSVC uses ::fopen_s
292 * Fix http::message constructor constraint
293 * Check defined(BOOST_MSVC)
295 --------------------------------------------------------------------------------
299 * Tidy up a doc code snippet
300 * basic_parser::content_length is stable (API Change)
302 --------------------------------------------------------------------------------
306 * Fix ssl_stream teardown
308 --------------------------------------------------------------------------------
312 * More split compilation in HTTP
314 --------------------------------------------------------------------------------
318 * Refactor Jamfiles to work with release layout
320 --------------------------------------------------------------------------------
324 * cmake: Use static libs to speed up builds
326 --------------------------------------------------------------------------------
330 * root_certificates.hpp: brought in the server certificate
332 --------------------------------------------------------------------------------
336 * Fix self-assignment warning in buffer test
339 --------------------------------------------------------------------------------
343 * Don't link to OpenSSL needlessly (bjam)
344 * HTTPS URLs in README.md
346 --------------------------------------------------------------------------------
350 * Check __ANDROID__ instead
351 * Use secure TLS/SSL versions
353 --------------------------------------------------------------------------------
357 * Fix close_socket for net::basic_socket changes
358 * Fix file_win32_write_op async initiation
359 * Fix basic_stream lowest_layer for ssl
361 --------------------------------------------------------------------------------
365 * Doc section names are stable
366 * Add missing include
367 * Constrain to_static_string to integers
369 --------------------------------------------------------------------------------
373 * Don't use dynamic_buffer_ref
374 * Remove dynamic_buffer_ref
375 * Fix completion handler invocation signatures
377 --------------------------------------------------------------------------------
381 * Rename to buffer_bytes
383 * detect_ssl returns a bool
384 * Fix stable_async_base example
388 * handler_ptr is deprecated
392 * Replace use of `handler_ptr` with `stable_async_base`
393 and `allocate_stable`.
395 --------------------------------------------------------------------------------
399 * Fix UB in decorator:
400 * Sync up convenience headers
401 * The Fields concept is deprecated (API Change)
402 * Fix includes.xsl for newer doxygen
403 * Tidy up quick reference
404 * SSL teardowns are in an associated namespace
406 --------------------------------------------------------------------------------
410 * Fix decorator for certain sizes
412 --------------------------------------------------------------------------------
416 * Support -fno-exceptions
417 * make_strand is in net::
418 * Fix HTTP parser static string calculation
419 * Move parser definitions to .ipp
420 * Appveyor uses msvc-14.0
422 --------------------------------------------------------------------------------
426 * Tidy up an unused function
428 * Examples use flat_buffer
429 * Remove session_alloc (API Change)
433 * Don't use session_alloc
435 --------------------------------------------------------------------------------
439 * Remove extraneous error check in advanced-server-flex
440 * Advanced servers use HTTP parser interfaces for reading
441 * Reusing an HTTP parser returns an error
443 --------------------------------------------------------------------------------
447 * Add test::stream::service
448 * Add websocket service
449 * Pausation abandoning test
450 * Destroy abandoned websocket ops on shutdown
452 --------------------------------------------------------------------------------
456 * stream_base::timeout::suggested is a nested function
458 --------------------------------------------------------------------------------
462 * Rename to async_base, stable_async_base
463 * role_type is in boost/beast/core/role.hpp (API Change)
464 * Cleanup in test::stream internals
465 * Pass references as pointers to async_initiate
469 * Include <boost/beast/core/role.hpp> or
470 define BOOST_BEAST_ALLOW_DEPRECATED=1
472 --------------------------------------------------------------------------------
476 * Documentation and release notes
478 --------------------------------------------------------------------------------
482 * More split definitions in test::stream
483 * Visual Studio 2017 minimum requirement for Windows
484 * Better treatment of SSL short reads
485 * ssl_stream is a public interface
486 * basic_parser is abstract, not CRTP (API Change)
487 * OpenSSL is required for tests and examples
489 --------------------------------------------------------------------------------
493 * detect_ssl, async_detect_ssl are public interfaces
494 * Add OpenSSL installation/setup instructions
495 * Enable split Beast compilation for tests
497 --------------------------------------------------------------------------------
501 * websocket idle pings
502 * RatePolicy documentation
503 * Pass strand to async_accept
504 * Fix file_body_win32
506 * Check BOOST_NO_CXX11_THREAD_LOCAL
509 --------------------------------------------------------------------------------
513 * Refactor websocket::stream operations
514 * Add websocket::stream timeouts
515 * Use suggested timeouts in Websocket examples
517 * Add RatePolicy to basic_stream
518 * Use async_initiate in basic_stream
519 * basic_stream connects are members
520 * Beast supports latest Asio changes (API Change)
521 * WebSocket Decorator is a socket option (API Change)
522 * Overloads of the following functions which accept a Decorator
525 - handshake, handshake_ex
526 - async_accept, async_accept_ex
527 - async_handshake, async_handshake_ex
531 * Code which passes decorator to any `websocket::stream` member
532 function should call `stream::set_option` instead with a newly
533 constructed `stream_base::decorator` object containing the
534 decorator. Alternatively, the macro `BOOST_BEAST_ALLOW_DEPRECATED`
537 * Fix compilation errors required by Asio changes
539 --------------------------------------------------------------------------------
543 * basic_stream uses boost::shared_ptr
544 * Remove bind_back_handler
545 * bind_front_handler works with member functions
546 * Examples use bind_front_handler
547 * Add experimental test/handler.hpp
548 * Rename to async_op_base::invoke_now
549 * Add async_op_base::invoke
550 * Remove CppCon2018 example
551 * Examples use ssl_stream
553 --------------------------------------------------------------------------------
557 * Handler binders use the associated allocator
558 * Add detail::bind_continuation
559 * Rewrite the echo-op example
561 --------------------------------------------------------------------------------
565 * Fix posix_file::close handling of EINTR
566 * basic_stream subsumes stranded_stream:
567 * Use timeouts in HTTP server examples
568 * Use timeouts in HTTP client examples
569 * Use tcp_stream in WebSocket client examples
570 * Use tcp_stream in WebSocket server examples
571 * Use tcp_stream, HTTP timeouts in advanced servers
573 --------------------------------------------------------------------------------
577 * dynamic_buffer_ref tests and tidy
578 * flat_stream tests and tidy
579 * stranded_socket tests and tidy
580 * buffers_front tests
581 * Improved websocket stream documentation
583 --------------------------------------------------------------------------------
587 * close_socket is in stream_traits.hpp
588 * Improvements to test::stream
589 * Add stranded_stream
591 * flat_buffer::clear preserves capacity
592 * multi_buffer::clear preserves capacity
595 --------------------------------------------------------------------------------
599 * Tidy up read implementation
600 * Fix stable_async_op_base javadoc
601 * Better handling of stream timeouts
602 * Add stream_traits.hpp
603 * Add executor_type trait
604 * Fix hexadecimal string conversion table
605 * is_completion_handler, type_traits.hpp are deprecated
606 * Fixes to test::stream::async_read
610 * Stream traits are now in stream_traits.hpp
611 * `is_file` is now in file_base.hpp
612 * is_completion_handler is deprecated
616 * Include stream_traits.hpp as needed
617 * Include file_base.hpp as needed
618 * Use std::is_invocable instead of is_completion_handler
620 --------------------------------------------------------------------------------
624 * Faster http::string_to_field
625 * async_echo supports move-only handlers
626 * test::stream maintains a handler work guard
627 * Qualify buffer_copy, don't qualify buffer_size
628 * Add dynamic_buffer_ref
629 * Refactor quickref.xml
632 --------------------------------------------------------------------------------
636 * Add get_lowest_layer free function
637 * Add lowest_layer_type metafunction
638 * Add close_socket, beast_close_socket customization
641 --------------------------------------------------------------------------------
645 * Send from the strand
646 * Pass the correct handler in basic_timeout_stream
650 * lowest_layer is removed
654 * Remove lowest_layer and lowest_layer_type from user-defined streams.
655 * Use the get_lowest_layer free function and the lowest_layer_type trait
658 --------------------------------------------------------------------------------
662 * Clear error codes idiomatically
663 * websocket stream uses shared_ptr<impl_type>
664 * Add websocket-chat-multi example
666 --------------------------------------------------------------------------------
671 * Add detail/soft_mutex.hpp
672 * Add detail/prng.hpp
674 --------------------------------------------------------------------------------
678 * Add basic_timeout_stream
679 * Unit test macros use the global suite
682 --------------------------------------------------------------------------------
686 * Update networking refresher doc
687 * Include error code in call to set_option
688 * saved_handler is a public interface
689 * Use new saved_handler in websocket
690 * session_alloc is thread-safe
691 * examples use flat_buffer
692 * parse_until is not static
693 * Boost.System is header-only
695 --------------------------------------------------------------------------------
699 * Use cxxstd instead of cxxflags
700 * Update coverage badge images
701 * Tidy up basic_stream_socket docs
702 * Refactor async_op_base
704 * async_op_base is a public interface
705 * Add tests for bind_back_handler
706 * Add tests for async_op_base
708 --------------------------------------------------------------------------------
712 * Decay bound arguments in handler wrapper parameters
713 * Add bind_back_handler
714 * Tidy up default-constructed iterators
715 * Add core errors and conditions
716 * New basic_stream_socket
718 --------------------------------------------------------------------------------
722 * Don't include OpenSSL for core snippets
723 * Tidy up msvc-14 workaround in multi_buffer
724 * buffers_cat fixes and coverage
725 * Refactor buffers_adaptor
726 * Refactor buffers_range
727 * Fix and refactor buffers_cat
728 * Refactor buffers_prefix
729 * Add const and mutable buffer sequence traits
730 * Add buffers_iterator_type trait
731 * Use new buffer traits, remove old unused traits
732 * Optimize for size on buffers_cat preconditions
733 * Refactor buffers_suffix
734 * Tidy up flat_buffer tests
735 * Fix ostream prepare calculation for low limits
736 * Tidy up flat_static_buffer tests
737 * Add more tests for dynamic buffers
738 * Tidy up multi_buffer
740 * Refactor static_buffer
742 * Adjust static_asio lib options in Jamfile
743 * Add type_traits tests
744 * Add buffers_range_ref (replaces reference_wrapper parameter)
748 * buffers_adaptor replaces buffers_adapter (rename)
749 * make_printable replaces buffers (rename)
750 * Remove file_mode::append_new
754 * Replace buffers_adapter.hpp with buffers_adaptor.hpp, and
755 replace buffers_adapter with buffers_adaptor. Or, define
756 BOOST_BEAST_ALLOW_DEPRECATED
758 * Replace call sites to use make_printable instead of buffers,
759 and also include make_printable.hpp instead of ostream.hpp.
761 * Replace file_mode::append_new with file_mode::append
762 or file_mode::append_existing instead of file_mode::append_new
764 --------------------------------------------------------------------------------
768 * Workarounds for msvc-14
769 * Fix Appveyor badge links
771 --------------------------------------------------------------------------------
775 * flat_buffer improvements
776 * multi_buffer improvements
777 * static_buffer improvements
778 * flat_static_buffer_improvements
779 * saved_handler maintains a work_guard (websocket)
780 * Add buffer_traits.hpp, buffers_type
781 * Tidy up experimental files
783 * Fix bind_handler, bind_front_handler
784 * Improved handler bind wrapper tests
788 * Files return errc::bad_file_descriptor
789 * flat_static_buffer::reset is deprecated
793 * Callers checking for errc::invalid_argument from calls to
794 file APIs should check for errc::bad_file_descriptor instead.
796 * Replace calls to flat_static_buffer::reset with
797 flat_static_buffer::clear
799 --------------------------------------------------------------------------------
803 * Improvements to echo-op example
804 * Crawler example clears the response before each read
805 * Use a struct instead of a pair in flat_stream (experimental)
809 * Refactor HTTP operations
813 * Callers depending on the return value of http::read or
814 http::async_read overloads should adjust the usage of
815 the returned value as needed.
817 --------------------------------------------------------------------------------
821 * Tidy up calls to placement new
822 * Remove unused type_traits
823 * Simplify handler_ptr
825 --------------------------------------------------------------------------------
829 * net is a namespace alias for boost::asio
830 * Simplify multi_buffer and static_buffer sequences
833 --------------------------------------------------------------------------------
837 * http::async_read returns the right byte count on error
838 * Add net namespace alias
839 * Don't use-after-free in test
840 * Tidy up ssl_stream (experimental)
841 * Dynamic buffer improvements
842 * Saved handlers are dispatched
844 --------------------------------------------------------------------------------
848 * Update ssl_stream signatures for networking changes
849 * Fix test::stream async_result transformation
850 * Tidy up test::stream
851 * Enable explicit instantiation of websocket::stream
853 --------------------------------------------------------------------------------
857 * Use mp11::integer_sequence
858 * Tidy up warnings and deprecated usage
859 * http::message is not-a boost::empty_value
861 * Fixes to timeout services (experimental)
863 --------------------------------------------------------------------------------
867 * Add bind_front_handler
868 * Use bind_front_handler
869 * Simplify some type traits
870 * Use lean_tuple in buffers_cat
871 * Use lean_tuple in bind_handler, bind_front_handler
872 * Use mp11 in detail::variant
873 * Fix buffers_cat uninitialized warning
874 * Fix static_string uninitialized warning
875 * Fix warning in is_ssl_handshake
877 --------------------------------------------------------------------------------
881 * Add missing includes to convenience headers
882 * Unit test framework is experimental
884 * Rename experimental directory
885 * Improve compilation of tests for continuous integration
886 * Fix visibility warnings in test
888 --------------------------------------------------------------------------------
892 * Fix broken doc link
893 * example/cppcon2018 only requires C++11
895 --------------------------------------------------------------------------------
899 * Add CppCon2018 chat server example and video
901 --------------------------------------------------------------------------------
905 * Remove extraneous strand from example
906 * Add missing include in http/read.ipp
907 * Test for gcc warning bug
908 * Fix a spurious gcc warning
910 --------------------------------------------------------------------------------
914 * Add experimental timeout_socket
915 * Fix warning in file tests
916 * Fix uninitialized comparison in buffers iterator
917 * Partial support for BOOST_NO_EXCEPTIONS
918 * Fix a spurious gcc warning
919 * Test for gcc warning bug
920 * Add missing include
921 * Remove extraneous strand from example
923 --------------------------------------------------------------------------------
927 * basic_fields uses intrusive base hooks
928 * Fix parsing of out-of-bounds hex values
930 --------------------------------------------------------------------------------
934 * Remove extraneous function
936 * Add BOOST_BEAST_USE_STD_STRING_VIEW
937 * Fix timer on websocket upgrade in examples
939 --------------------------------------------------------------------------------
943 * Fix a rare case of failed UTF8 validation
944 * Verify certificates in client examples
945 * Use boost::empty_value
946 * Workaround for http-server-fast and libstdc++
948 --------------------------------------------------------------------------------
952 * Silence ubsan false positive
954 --------------------------------------------------------------------------------
958 * Fix parse_dec algorithm
959 * Add parse_dec tests
961 --------------------------------------------------------------------------------
965 * Fix http_server_stackless_ssl.cpp example
967 --------------------------------------------------------------------------------
971 * Use the exchange() idiom in move constructors
972 * Most members of std::allocate are deprecated in C++17
973 * Remove some unused variables
975 --------------------------------------------------------------------------------
979 * Use static_cast instead
981 --------------------------------------------------------------------------------
985 * Add test for issue #1188
987 * Check error in example set_option
989 --------------------------------------------------------------------------------
993 * Tidy up Quick Reference
994 * Fix array end calculation in utf8 assertion
995 * WebSocket masks use secure PRNG by default
997 --------------------------------------------------------------------------------
1001 * Fix initialization warning
1003 --------------------------------------------------------------------------------
1007 * Fix Fields, FieldsWriter concept docs
1008 * Fix BodyReader constructor requirements doc
1010 --------------------------------------------------------------------------------
1014 * Remove Autobahn testsuite doc note
1015 * Fix buffers_adapter iterator value type
1016 * Fix buffers_adapter max_size
1017 * Fix buffers_prefix iterator decrement
1018 * buffers_adapter improvements
1019 * Add icy_stream Shoutcast stream filter
1021 --------------------------------------------------------------------------------
1025 * Tidy up websocket stream javadocs
1026 * Fix move-only arguments in bind_handler
1027 * Fix http::parser constructor javadoc
1028 * Tidy up test::stream javadocs
1029 * Tidy up composed operation doc
1031 --------------------------------------------------------------------------------
1035 * Add handler_ptr::has_value
1036 * Remove spurious assert
1037 * Fix unused variable warning
1039 --------------------------------------------------------------------------------
1043 * Add flat_stream to experimental
1044 * Add ssl_stream to experimental
1045 * Add test::error to experimental
1046 * Add test::fail_count to experimental
1047 * Add test::stream to experimental
1048 * Use a shared string for example HTTP server doc roots
1049 * Remove deprecated serializer::reader_impl()
1050 * Remove deprecated Body reader and writer ctor signatures
1051 * Add is_mutable_body_writer metafunction
1052 * Add const and non-const overloads for message based http writes
1053 * Use the root certificate which matches the fingerprint
1055 --------------------------------------------------------------------------------
1059 * Use buffers_to_string in tests
1061 * Refactor HTTP write_op implementation
1062 * Use fully qualified namespace in BOOST_BEAST_HANDLER_INIT
1063 * New flat_stream example class
1064 * Use flat_stream in ssl_stream example code
1066 --------------------------------------------------------------------------------
1070 * Use executor_work_guard in composed operations
1071 * Revert verb.ipp change which caused spurious warnings
1072 * Fix race in advanced server examples
1074 --------------------------------------------------------------------------------
1078 * Revert: Tidy up calls to post()
1080 --------------------------------------------------------------------------------
1084 * Use boost::is_convertible as a workaround
1086 --------------------------------------------------------------------------------
1090 * Fix BOOST_NO_CXX11_ALLOCATOR check
1092 --------------------------------------------------------------------------------
1096 * Fix masking on continuation frames
1097 * Add Access-Control-Expose-Headers field constant
1099 --------------------------------------------------------------------------------
1103 * Tidy up calls to post()
1104 * Fix narrowing warnings
1106 --------------------------------------------------------------------------------
1110 * Add asio_handler_invoke overloads for stream algorithms
1111 * Improve websocket::stream::control_callback javadoc
1113 --------------------------------------------------------------------------------
1117 * Don't copy the handler in write_some_op
1118 * Add move-only handler tests
1119 * Fix handler parameter javadocs
1121 --------------------------------------------------------------------------------
1125 * Examples clear the HTTP message before reading
1127 --------------------------------------------------------------------------------
1131 * Fix typo in release notes
1132 * Safe treatment of zero-length string arguments in basic_fields
1133 * Some basic_fields operations now give the strong exception guarantee
1135 --------------------------------------------------------------------------------
1139 * Tidy up end_of_stream javadoc
1140 * Tidy up websocket docs
1141 * Examples set reuse_address(true)
1142 * Advanced servers support clean shutdown via SIGINT or SIGTERM
1143 * DynamicBuffer input areas are not mutable
1144 * Tidy up some documentation
1148 * get_lowest_layer is a type alias
1152 * Replace instances of `typename get_lowest_layer<T>::type`
1153 with `get_lowest_layer<T>`.
1155 --------------------------------------------------------------------------------
1159 * Fix teardown for TIME_WAIT
1160 * Fix big-endian websocket masking
1162 --------------------------------------------------------------------------------
1167 * Add release notes to documentation
1168 * Fix stale link for void-or-deduced
1170 --------------------------------------------------------------------------------
1174 * Fix memory leak in advanced server examples
1175 * Fix soft-mutex assert in websocket stream
1176 * Fix fallthrough warnings
1177 * Tidy up bind_handler doc
1179 --------------------------------------------------------------------------------
1183 * Type check completion handlers
1184 * bind_handler doc update
1185 * bind_handler works with boost placeholders
1187 --------------------------------------------------------------------------------
1191 * Remove BOOST_VERSION checks
1192 * Use make_error_code for setting an error_code from errc
1193 * Use boost::winapi::GetLastError() consistently
1194 * Update README.md for branches
1195 * Avoid string_view::clear
1196 * Fix iterator version of basic_fields::erase
1197 * Fix use-after-move in example request handlers
1198 * Add Bishop Fox interview media
1200 --------------------------------------------------------------------------------
1204 * Refactor detect_ssl_op
1205 * Disable gdb on Travis for Meltdown
1209 * Redistribute the read tests in the translation units
1210 * Refactor error headers
1211 * Add WebSocket error conditions
1215 * Refactor WebSocket errors (API Change):
1219 * Code which explicitly compares error_code values against the
1220 constant `websocket::error::handshake_failed` should compare
1221 against `websocket::condition::handshake_failed` instead.
1223 * Code which explicitly compares error_code values against the
1224 constant `websocket::error::failed` should compare
1225 against `websocket::condition::protocol_violation` instead.
1227 --------------------------------------------------------------------------------
1231 * Sanitizer failures are errors
1232 * Depend on container_hash
1233 * Fix high-ASCII in source file
1237 * Control callback is invoked on the execution context
1238 * Add stream_fwd.hpp
1239 * Remove unnecessary include
1243 * http::parser is not MoveConstructible
1244 * permessage-deflate is a compile-time feature
1246 --------------------------------------------------------------------------------
1255 * serializer::reader_impl is deprecated
1259 * Call serializer::writer_impl instead of reader_impl
1261 --------------------------------------------------------------------------------
1265 * built-in r-value return values can't be assigned
1266 * Tidy up ssl_stream special members
1267 * Fix CMakeLists.txt variable
1268 * Protect calls from macros
1269 * pausation always allocates
1270 * Don't copy completion handlers
1271 * handler_ptr is move-only
1272 * Fix Travis memory utilization
1276 * handler_ptr gives the strong exception guarantee
1280 * Change the constructor signature for state objects
1281 used with handler_ptr to receive a const reference to
1284 --------------------------------------------------------------------------------
1288 * Install codecov on codecov CI targets only
1289 * Update reports for hybrid assessment
1290 * Handle invalid deflate frames
1292 --------------------------------------------------------------------------------
1296 * Don't use boost::string_ref
1297 * Use iterator wrapper in detail::buffers_range
1301 * Tidy up basic_fields exception specifiers
1305 * control callback is copied or moved
1306 * Send idle pings in advanced servers
1308 --------------------------------------------------------------------------------
1313 * Faster ascii_tolower
1314 * Documentation tidying
1315 * Fix typo in examples documentation
1316 * Add detail::aligned_union and tidy up
1317 * Use variant in buffers_cat_view
1321 * Remove unintended public members of handler_ptr
1323 --------------------------------------------------------------------------------
1327 * Rename some detail functions
1328 * Refactor basic_fields allocator internals
1329 * Refactor HTTP async read composed operations
1330 * null_buffers is deprecated
1331 * Version 124 works with Boost 1.65.1 and earlier
1332 * basic_fields does not support fancy pointers
1334 --------------------------------------------------------------------------------
1338 * Update reports for hybrid assessment
1339 * Handle invalid deflate frames
1340 * Install codecov on codecov CI targets only
1342 --------------------------------------------------------------------------------
1346 * Fix websocket permessage-deflate negotiation
1348 --------------------------------------------------------------------------------
1352 * Fix autobahn report link
1354 --------------------------------------------------------------------------------
1358 * Warn about upcoming API changes to certain concepts
1359 * Fix name typo in http write test
1361 --------------------------------------------------------------------------------
1365 * Tidy up some documentation
1367 --------------------------------------------------------------------------------
1371 * Fix some integer warnings in 64-bit builds
1372 * Fix utf8_checker test failures
1373 * Fix signature for async_read_some, and tests
1374 * Tidy up basic_parser
1375 * Some basic_fields special members are protected
1377 --------------------------------------------------------------------------------
1381 * Revisit boost library min/max guidance
1383 --------------------------------------------------------------------------------
1387 * Tidy up some documentation
1389 --------------------------------------------------------------------------------
1393 * ConstBufferSequence mandates pointer equivalence
1394 * Add FieldsWriter constructor requirement
1395 * Tidy up some documented constructor syntax
1397 --------------------------------------------------------------------------------
1401 * Tidy up message doc image
1403 --------------------------------------------------------------------------------
1407 * Fix typo in example server help text
1409 --------------------------------------------------------------------------------
1413 * Add static_buffer_base default constructor definition
1415 --------------------------------------------------------------------------------
1419 * Remove const&& overload of message::body
1421 --------------------------------------------------------------------------------
1425 * Tidy up project folders in CMakeLists.txt
1426 * Rename Cmake variables for clarity
1427 * Add ref-qualified overloads for message::body
1428 * Tidy up FieldsReader doc
1432 * Fields::writer replaces Fields::reader
1433 * BodyReader and BodyWriter names are swapped
1437 * Rename reader to writer for user defined Fields
1438 * Swap the reader and writer names for user defined Body types
1439 * Swap use of is_body_reader and is_body_writer
1441 --------------------------------------------------------------------------------
1445 * basic_fields returns const values
1446 * Set SNI hostname in example SSL clients
1448 --------------------------------------------------------------------------------
1452 * Tidy up fallthrough warning
1453 * Remove cxx11_sfinae_expr build requirement from tests
1455 --------------------------------------------------------------------------------
1459 * Add autobahn test report to doc
1460 * Documentation tidying
1461 * Fix prepare_payload: chunked is HTTP/1.1
1463 --------------------------------------------------------------------------------
1468 * Add explicit-failures-markup.xml
1472 * Add message::need_eof
1473 * Use message::need_eof in example servers
1474 * Use synchronous writes in chunk output example
1478 * Fix utf8 validation for autobahn
1479 * Temporarily disable utf8 validation tests
1480 * Tidy up fast websocket server host names
1484 * Remove serializer::keep_alive
1485 * Remove serializer::chunked
1486 * Add has_content_length_impl to Fields
1487 * Add message::has_content_length
1488 * Rename some basic_parser observers
1492 * Call message::keep_alive instead of serializer::keep_alive
1493 * Call serializer::get::chunked instead of serializer::chunked
1494 * Implement has_content_length_impl for user-defined Fields
1495 * Remove the "is_" prefix from call sites invoking certain basic_parser members
1497 --------------------------------------------------------------------------------
1501 * Add BOOST_BEAST_NO_POSIX_FADVISE
1502 * Version command line option for HTTP client examples
1503 * More Jamfile compiler requirements for tests
1505 --------------------------------------------------------------------------------
1509 * Add CppCon2017 presentation link
1511 * Update stream write documentation for end of stream changes
1512 * Tidy up unused variable warnings
1513 * Don't return end_of_stream on win32 file body writes
1515 * Fix shadowing in session_alloc
1516 * Fix executor type compilation
1517 * Add Travis tests with the default compilers
1518 * Update Boost.WinAPI usage to the new location and namespace.
1519 * Fix buffered_read_stream async_read_some signature
1521 --------------------------------------------------------------------------------
1527 * Update for Net-TS Asio
1531 * Use BOOST_ASIO_HANDLER_TYPE instead of handler_type
1532 * Use BOOST_ASIO_INITFN_RESULT_TYPE instead of async_result
1533 * Use boost::asio::async_completion
1534 * Use boost::asio::is_dynamic_buffer
1535 * Use boost::asio::is_const_buffer_sequence
1536 * Use boost::asio::is_mutable_buffer_sequence
1537 * boost::asio::associated_allocator_t replaces handler_alloc
1539 --------------------------------------------------------------------------------
1543 * Fix for a test matrix compiler
1544 * Fix basic_fields javadoc
1548 * http write returns success on connection close
1552 * Add code to servers to close the connection after successfully
1553 writing a message where `message::keep_alive()` would return `false`.
1555 --------------------------------------------------------------------------------
1559 * Use unit-test subtree
1560 * Fix spurious race in websocket close test
1561 * Check compiler feature in Jamfile
1562 * Clear previous message fields in parser
1564 --------------------------------------------------------------------------------
1568 * Add test for issue 807
1569 * assert on empty buffer in websocket read
1570 * Fix zlib symbol conflicts
1571 * CMake 3.5.1 is required
1572 * config.hpp is not a public header
1573 * Add missing case in error test
1575 --------------------------------------------------------------------------------
1579 * Add test for issue 802
1580 * Fix enum and non-enum in conditional exp. warning
1582 --------------------------------------------------------------------------------
1586 * Fix spurious strand_ in advanced_server_flex
1587 * OpenSSL targets are optional (CMake)
1589 --------------------------------------------------------------------------------
1593 * Tidy up doc badge links
1595 --------------------------------------------------------------------------------
1599 * file_win32 opens for read-only in shared mode
1600 * Remove unused strands in server examples
1601 * Update build instructions
1602 * Doc root is at index.html
1606 * Fix writing header into std::ostream
1608 --------------------------------------------------------------------------------
1612 * Add buffers_to_string
1616 * buffers_suffix replaces consuming_buffers
1617 * buffers_prefix replaces buffer_prefix
1618 * buffers_prefix_view replaces buffer_prefix_view
1619 * buffers_front replaces buffer_front
1620 * buffers_cat replaces buffer_cat
1621 * buffers_cat_view replaces buffer_cat_view
1622 * Remove buffers_suffix::get
1626 * Use buffers_suffix instead of consuming_buffers
1627 * Use buffers_prefix instead of buffer_prefix
1628 * Use buffers_prefix_view instead of buffer_prefix_view
1629 * Use buffers_front instead of buffer_front
1630 * Use buffers_cat instead of buffer_cat
1631 * Use buffers_cat_view instead of buffer_cat_view
1632 * Avoid calling buffers_suffix::get
1634 --------------------------------------------------------------------------------
1640 * message::body is a member function
1641 * message::version is a member function
1645 * Call member function message::body instead of accessing
1646 the data member at call sites.
1648 * Call member function message::version instead of accessing
1649 the version member at call sites.
1651 --------------------------------------------------------------------------------
1655 * Update README.md master doc link
1657 --------------------------------------------------------------------------------
1663 --------------------------------------------------------------------------------
1667 * Fix handler signature in async_read_header
1668 * Remove field_range copy constructor
1670 --------------------------------------------------------------------------------
1674 * Update websocket notes
1678 * WebSocket writes return the bytes transferred
1680 * HTTP reads and writes return bytes transferred
1684 * Modify websocket write completion handlers to receive
1685 the extra std::size_t bytes_transferred parameter.
1687 * Modify HTTP read and/or write completion handlers to
1688 receive the extra std::size_t bytes_transferred parameter.
1690 --------------------------------------------------------------------------------
1696 * Fix utf8 check split code point at buffer end
1697 * Refactor stream operations and tests plus coverage
1698 * Suspended ops special members
1700 --------------------------------------------------------------------------------
1704 * Refactor stream open state variable
1705 * Refactor websocket stream members
1706 * Refactor websocket stream: fixes and tests
1707 * Add test::stream::lowest_layer
1708 * Fix invalid iterator in test reporter
1710 --------------------------------------------------------------------------------
1714 * refactor test::stream
1718 * Fix async_read_some handler signature
1719 * websocket close fixes and tests
1720 * websocket handshake uses coroutine
1721 * websocket ping tests
1722 * Fix websocket close_op resume state
1723 * websocket write tests
1724 * split up websocket tests
1725 * websocket read tests
1729 * websocket accept refactoring
1733 * Do not call websocket accept overloads which take
1734 both a message and a buffer sequence, as it is
1735 illegal per rfc6455.
1737 --------------------------------------------------------------------------------
1741 * Fix argument parsing in HTTP examples
1742 * Don't use async_write_msg in examples
1744 --------------------------------------------------------------------------------
1752 * Fix done state for WebSocket reads
1753 * Fix utf8 check for compressed frames
1754 * Rename frame and header buffer types
1756 --------------------------------------------------------------------------------
1760 * Dynamic buffer input areas are mutable
1761 * Add flat_static_buffer::reset
1765 * Fix for basic_parser::skip(true) and docs
1769 * websocket test improvements
1770 * Remove obsolete write_op
1776 * Refactor read_op + fail_op
1777 * Websocket close will automatically drain
1778 * Autobahn|Testsuite fixes
1779 * Tidy up utf8_checker and tests
1781 --------------------------------------------------------------------------------
1785 * Fix compile error in websocket snippet
1786 * Tidy up Jamfile and tests
1788 --------------------------------------------------------------------------------
1792 * Remove unused include
1793 * Use #error in config.hpp
1794 * Only set -std=c++11 on Travis
1795 * Only set /permissive- on Appveyor
1796 * Tidy up some test warnings
1797 * tools/ renamed from build/
1801 * Fix pausation::save
1803 --------------------------------------------------------------------------------
1807 * Boost test matrix fixes
1808 * Tidy up allocator usage
1809 * Example HTTP server fixes
1811 --------------------------------------------------------------------------------
1815 * Section headings in examples
1817 --------------------------------------------------------------------------------
1821 * Refactor all examples
1823 --------------------------------------------------------------------------------
1827 * Fix doc convenience includes
1829 * Remove unused test header
1830 * Rename test macros
1831 * Reorder define test macro params
1832 * vcxproj workaround for include symlinks
1833 * Add variadic min/max
1837 * Remove obsolete frame tests
1838 * Refactor fail/clode code
1839 * Call do_fail from read_some
1840 * eof on accept returns error::closed
1841 * Fix stream::read_size_hint calculation
1846 * Calls to stream::close and stream::async_close will
1847 automatically perform the required read operations
1849 * drain_buffer is removed
1851 * role_type replaces teardown_tag
1855 * Remove calling code which drains the connection after
1856 calling stream::close or stream::async_close
1858 * Replace code which uses drain_buffer. For websocket::stream,
1859 it is no longer necessary to manually drain the connection
1862 * Modify signatures of teardown and async_teardown to use
1863 role_type instead of teardown_tag
1865 * Change calls to teardown and async_teardown to pass the
1866 correct role_type, client or server, depending on context.
1868 --------------------------------------------------------------------------------
1872 * Log the value of LIB_DIR for doc builds (debug)
1873 * Use correct handler signature in fail_op
1876 --------------------------------------------------------------------------------
1880 * basic_fields::key_compare is noexcept
1881 * Fix bench-zlib cmake
1882 * Use unique names Jam projects
1883 * Trim utf8 checker test
1885 --------------------------------------------------------------------------------
1891 --------------------------------------------------------------------------------
1895 * Move bench/ to test/
1896 * Move extras/ to test/
1897 * Use <valgrind> property
1898 * Rename wsload compile target
1900 * Update boostorg links
1903 * Less compression on websocket test
1905 --------------------------------------------------------------------------------
1909 * Tidy up Travis build scripts
1910 * Move scripts to build/
1911 * Fix race in test::pipe
1912 * close on test::pipe teardown
1914 * Tidy up static_buffer braced init
1916 * Add valgrind variant, fix false positives
1918 --------------------------------------------------------------------------------
1922 * Use off-site Quick Start link temporarily
1924 --------------------------------------------------------------------------------
1928 * Unset BOOST_COROUTINES_NO_DEPRECATION_WARNING
1930 --------------------------------------------------------------------------------
1934 * Fix typo in test/CMakeLists.txt
1935 * basic_fields::value_type is not copyable
1936 * Update repository links in source comments
1937 * Ignore Content-Length in some cases
1938 * Tidy up doc snippet paths
1939 * Use off-site doc link
1941 --------------------------------------------------------------------------------
1945 * Adjust redirect html
1946 * Don't build pre-C++11
1947 * source.dox is path-independent
1948 * Tidy up namespace qualifiers
1949 * Tidy up MSVC CMakeLists.txt
1950 * Optimize buffered_read_stream
1951 * constexpr in derived buffers
1952 * Set BOOST_ASIO_NO_DEPRECATED
1953 * Use Asio array optimization in static_buffer_base
1954 * Rename wstest source file
1955 * Use fopen_s on Windows
1956 * Fix Appveyor script
1957 * Update project metadata
1958 * Move benchmarks to bench/
1960 * Build stand-alone doc
1961 * Update doc copyrights
1962 * Refactor test build scripts
1966 * Tidy up websocket javadocs
1967 * Refactor accept, handshake ops
1968 * Use read buffer instead of buffered stream
1972 * control frame callbacks are non-const references
1976 * Modify calls to set the control frame callback, to
1977 pass non-const reference instances, and manage the
1978 lifetime of the instance.
1980 --------------------------------------------------------------------------------
1984 * Fix websocket read of zero length message
1985 * Fix typo in equal_range
1986 * Output to integrated documentation
1988 --------------------------------------------------------------------------------
1992 * Fix CONTRIBUTING.md links
1994 --------------------------------------------------------------------------------
1998 * Update doc links in README.md
1999 * Refactor tests Jamfile
2000 * Don't use program_options
2004 * Fix uninitialized frame done
2006 --------------------------------------------------------------------------------
2010 * Update appveyor for Boost branch
2011 * Rename to BEAST_EXPECT
2012 * variant fixes and tests
2013 * Update README, add CONTRIBUTING.md and CODE_OF_CONDUCT.md
2015 --------------------------------------------------------------------------------
2020 * Remove use of lexical_cast
2021 * Use custom variant
2023 * Add local-travis.sh
2025 * Update CMakeLists.txt for boost
2026 * Update documentation for boost
2028 * Remove spurious declaration
2030 * Normalize doc build scripts
2031 * Use configured doxygen and xsltproc
2032 * Fix Deferred Body Type Example Documentation
2033 * Add library metadata
2037 * websocket read returns the number of bytes inserted
2041 * Change the signature of completion handlers used with
2042 websocket::stream::async_read to void(error_code, std::size_t)
2044 --------------------------------------------------------------------------------
2049 * Tidy up test warning
2051 --------------------------------------------------------------------------------
2055 * Tidy up buffer_front
2056 * static_buffer::consume improvement
2057 * multi_buffer is type-check friendly
2058 * bind_handler allows placeholders
2059 * Add consuming_buffers::get
2063 * WebSocket read optimization
2067 * websocket::stream::read_buffer_size is removed
2071 * Remove calls websocket::stream::read_buffer_size
2072 * Use read_some and write_some instead of read_frame and write_frame
2074 --------------------------------------------------------------------------------
2078 * Add flat_static_buffer::mutable_data
2080 * Add wstest compression option
2081 * Turn some flat_static_buffer_tests on
2082 * Documentation work
2083 * read_some, async_read_some return bytes used
2084 * Fix private timer::clock_type
2088 * Add wstest compression option
2089 * Fix buffer lifetime in websocket write
2097 * Callers who depend on static_buffer returning sequences of
2098 exactly length one should switch to flat_static_buffer.
2100 --------------------------------------------------------------------------------
2104 * Documentation tidying
2105 * is_invocable works with move-only types
2106 * Use std::function and reference wrapper
2107 * Add session_alloc to example/common
2108 * Silence spurious warning
2112 * Fix extraneous argument in async_write_header
2117 * Add rd_close_ to websocket stream state
2118 * stream uses flat_buffer
2119 * accept requires a message
2120 * Add wstest benchmark tool
2124 * Rename to flat_static_buffer and flat_static_buffer_base
2128 * Rename static_buffer to flat_static_buffer_base
2129 * Rename static_buffer_n to flat_static_buffer
2131 --------------------------------------------------------------------------------
2135 * Pass string_view by value
2136 * better is_final on empty_base_optimization
2137 * Suppress incorrect GCC warning
2138 * multi_buffer ctor is explicit
2139 * File is not copy-constructible
2143 * Refactor basic_parser, chunk parsing:
2147 * Adjust signatures for required members of user-defined
2148 subclasses of basic_parser
2150 * Use the new basic_parser chunk callbacks for accessing
2151 chunk extensions and chunk bodies.
2153 --------------------------------------------------------------------------------
2158 * Add basic_dynamic_body.hpp
2159 * Shrink buffer_prefix_view
2160 * Remove unused file_path
2161 * Add basic_file_body.hpp
2162 * buffers_ref is Assignable
2166 * Shrink chunk header buffer sequence size
2170 * Refactor chunked-encoding serialization
2174 * Remove references to ChunkDecorators. Use the new chunk-encoding
2175 buffer sequences to manually produce a chunked payload body in
2176 the case where control over the chunk-extensions and/or trailers
2179 --------------------------------------------------------------------------------
2183 * Remove spurious fallthrough guidance
2185 --------------------------------------------------------------------------------
2190 * Documentation work
2191 * Use make_unique_noinit
2192 * Fix warning in zlib
2193 * Header file tidying
2194 * Tidy up FieldsReader doc
2195 * Add Boost.Locale utf8 benchmark comparison
2196 * Tidy up dstream for existing Boost versions
2197 * Tidy up file_posix unused variable
2198 * Fix warning in root ca declaration
2202 * Tidy up basic_string_body
2204 * span, string, vector bodies are public
2205 * Fix spurious uninitialized warning
2206 * fields temp string uses allocator
2210 * Add message::keep_alive()
2211 * Add message::chunked() and message::content_length()
2212 * Remove string_view_body
2216 * Change user defined implementations of Fields and
2217 FieldsReader to meet the new requirements.
2219 * Use span_body<char> instead of string_view_body
2221 --------------------------------------------------------------------------------
2225 * file_posix works without large file support
2227 --------------------------------------------------------------------------------
2231 * Always go through write_some
2233 * BodyReader may construct from a non-const message
2234 * Add serializer::get
2235 * Add serializer::chunked
2236 * Serializer members are not const
2237 * serializing file_body is not const
2238 * Add file_body_win32
2239 * Fix parse illegal characters in obs-fold
2240 * Disable SSE4.2 optimizations
2244 * Rename to serializer::keep_alive
2245 * BodyReader, BodyWriter use two-phase init
2249 * Use serializer::keep_alive instead of serializer::close and
2250 take the logical NOT of the return value.
2252 * Modify instances of user-defined BodyReader and BodyWriter
2253 types to perform two-phase initialization, as per the
2254 updated documented type requirements.
2256 --------------------------------------------------------------------------------
2260 * Use file_body for valid requests, string_body otherwise.
2261 * Construct buffer_prefix_view in-place
2262 * Shrink serializer buffers using buffers_ref
2263 * Tidy up BEAST_NO_BIG_VARIANTS
2264 * Shrink serializer buffers using buffers_ref
2265 * Add serializer::limit
2267 * Using SSE4.2 intrinsics in basic_parser if available
2269 --------------------------------------------------------------------------------
2273 * Add file_stdio and File concept
2276 * Remove common/file_body.hpp
2278 * Fix Beast include directories for cmake targets
2279 * remove redundant flush() from example
2281 --------------------------------------------------------------------------------
2286 * Verify certificates in SSL clients
2288 * Initialize local variable in basic_parser
2293 * basic_parser optimizations
2294 * Add basic_parser tests
2298 * Refactor header and message constructors
2299 * serializer::next replaces serializer::get
2303 * Evaluate each message constructor call site and
2304 adjust the constructor argument list as needed.
2306 * Use serializer::next instead of serializer::get at call sites
2308 --------------------------------------------------------------------------------
2314 * Tidy up set payload in http-server-fast
2315 * Refine Body::size specification
2316 * Newly constructed responses have a 200 OK result
2317 * Refactor file_body for best practices
2318 * Add http-server-threaded example
2319 * Documentation tidying
2320 * Various improvements to http_server_fast.cpp
2324 * Add websocket-server-async example
2326 --------------------------------------------------------------------------------
2330 * Fix extra ; warning
2331 * Documentation revision
2332 * Fix spurious on_chunk invocation
2333 * Call prepare_payload in HTTP example
2334 * Check trailers in test
2335 * Fix buffer overflow handling for string_body and mutable_body
2336 * Concept check in basic_dynamic_body
2337 * Tidy up http_sync_port error check
2338 * Tidy up Jamroot /permissive-
2342 * Fine tune websocket op asserts
2343 * Refactor websocket composed ops
2344 * Allow close, ping, and write to happen concurrently
2345 * Fix race in websocket read op
2346 * Fix websocket write op
2347 * Add cmake options for examples and tests
2351 * Return `std::size_t` from `Body::writer::put`
2355 * Return the number of bytes actually transferred from the
2356 input buffers in user defined `Body::writer::put` functions.
2358 --------------------------------------------------------------------------------
2362 * Serialize in one step when possible
2363 * Add basic_parser header and body limits
2364 * Add parser::on_header to set a callback
2365 * Fix BEAST_FALLTHROUGH
2366 * Fix HEAD response in file_service
2370 * Rename to message::base
2371 * basic_parser default limits are now 1MB/8MB
2375 * Change calls to message::header_part() with message::base()
2377 * Call body_limit and/or header_limit as needed to adjust the
2378 limits to suitable values if the defaults are insufficient.
2380 --------------------------------------------------------------------------------
2384 * basic_parser optimizations
2385 * Use BEAST_FALLTHROUGH to silence warnings
2386 * Add /permissive- to msvc toolchain
2388 --------------------------------------------------------------------------------
2392 * Split common tests to a new project
2393 * Small speed up in fields comparisons
2394 * Adjust buffer size in fast server
2395 * Use string_ref in older Boost versions
2396 * Optimize field lookups
2397 * Add const_body, mutable_body to examples
2398 * Link statically on cmake MSVC
2402 * Change BodyReader, BodyWriter requirements
2403 * Remove BodyReader::is_deferred
2404 * http::error::bad_target replaces bad_path
2408 * Change user defined instances of BodyReader and BodyWriter
2409 to meet the new requirements.
2411 * Replace references to http::error::bad_path with http::error::bad_target
2413 --------------------------------------------------------------------------------
2417 * Fix doc example link
2418 * Add http-server-small example
2419 * Merge stream_base to stream and tidy
2420 * Use boost::string_view
2421 * Rename to http-server-fast
2422 * Appveyor use Boost 1.64.0
2423 * Group common example headers
2427 * control_callback replaces ping_callback
2431 * Change calls to websocket::stream::ping_callback to use
2432 websocket::stream::control_callback
2434 * Change user defined ping callbacks to have the new
2435 signature and adjust the callback definition appropriately.
2437 --------------------------------------------------------------------------------
2441 * string_param optimizations
2442 * Add serializer request/response aliases
2443 * Make consuming_buffers smaller
2444 * Fix costly potential value-init in parser
2445 * Fix unused parameter warning
2446 * Handle bad_alloc in parser
2447 * Tidy up message piecewise ctors
2448 * Add header aliases
2449 * basic_fields optimizations
2450 * Add http-server example
2451 * Squelch spurious warning on gcc
2453 --------------------------------------------------------------------------------
2457 * Enable narrowing warning on msvc cmake
2458 * Fix integer types in deflate_stream::bi_reverse
2459 * Fix narrowing in static_ostream
2460 * Fix narrowing in ostream
2461 * Fix narrowing in inflate_stream
2462 * Fix narrowing in deflate_stream
2463 * Fix integer warnings
2464 * Enable unused variable warning on msvc cmake
2466 --------------------------------------------------------------------------------
2470 * Simplify buffered_read_stream composed op
2471 * Simplify ssl teardown composed op
2472 * Simplify websocket write_op
2473 * Exemplars are compiled code
2474 * Better User-Agent in examples
2475 * async_write requires a non-const message
2477 * Add link_directories to cmake
2481 * Remove make_serializer
2485 * Replace calls to make_serializer with variable declarations
2487 --------------------------------------------------------------------------------
2491 * Use std::to_string instead of lexical_cast
2492 * Don't use cached Boost
2493 * Put num_jobs back up on Travis
2494 * Only build and run tests in variant=coverage
2495 * Move benchmarks to a separate project
2496 * Only run the tests under ubasan
2497 * Tidy up CMakeLists.txt
2499 * Control running with valgrind explicitly
2501 --------------------------------------------------------------------------------
2505 * Remove libssl-dev from a Travis matrix item
2506 * Increase detail::static_ostream coverage
2507 * Add server-framework tests
2508 * Doc fixes and tidy
2509 * Tidy up namespaces in examples
2510 * Clear the error faster
2511 * Avoid explicit operator bool for error
2512 * Add http::is_fields trait
2513 * Squelch harmless not_connected errors
2514 * Put slow tests back for coverage builds
2518 * parser requires basic_fields
2519 * Refine FieldsReader concept
2520 * message::prepare_payload replaces message::prepare
2524 * Callers using `parser` with Fields types other than basic_fields
2525 will need to create their own subclass of basic_parser to work
2526 with their custom fields type.
2528 * Implement chunked() and keep_alive() for user defined FieldsReader types.
2530 * Change calls to msg.prepare to msg.prepare_payload. For messages
2531 with a user-defined Fields, provide the function prepare_payload_impl
2532 in the fields type according to the Fields requirements.
2534 --------------------------------------------------------------------------------
2538 * Remove Spirit dependency
2539 * Use generic_cateogry for errno
2540 * Reorganize SSL examples
2541 * Tidy up some integer conversion warnings
2542 * Add message::header_part()
2543 * Tidy up names in error categories
2544 * Flush the output stream in the example
2545 * Clean close in Secure WebSocket client
2546 * Add server-framework SSL HTTP and WebSocket ports
2547 * Fix shadowing warnings
2548 * Tidy up http-crawl example
2549 * Add multi_port to server-framework
2550 * Tidy up resolver calls
2552 * Don't run slow tests on certain targets
2556 * header::version is unsigned
2557 * status-codes is unsigned
2559 --------------------------------------------------------------------------------
2563 * String comparisons are public interfaces
2564 * Fix response message type in async websocket accept
2565 * New server-framework, full featured server example
2567 --------------------------------------------------------------------------------
2571 * Integrated Beast INTERFACE (cmake)
2572 * Fix base64 alphabet
2573 * Remove obsolete doc/README.md
2577 * Change Body::size signature (API Change):
2581 * For any user-defined models of Body, change the function signature
2582 to accept `value_type const&` and modify the function definition
2585 --------------------------------------------------------------------------------
2589 * Fix unaligned reads in utf8-checker
2590 * Qualify size_t in message template
2591 * Reorganize examples
2592 * Specification for http read
2593 * Avoid `std::string` in websocket
2594 * Fix basic_fields insert ordering
2595 * basic_fields::set optimization
2596 * basic_parser::put doc
2597 * Use static string in basic_fields::reader
2598 * Remove redundant code
2599 * Fix parsing chunk size with leading zeroes
2600 * Better message formal parameter names
2604 * `basic_fields::set` renamed from `basic_fields::replace`
2608 * Rename calls to `basic_fields::replace` to `basic_fields::set`
2610 --------------------------------------------------------------------------------
2614 * Fix message.hpp javadocs
2615 * Fix warning in basic_parser.cpp
2616 * Integrate docca for documentation and tidy
2618 --------------------------------------------------------------------------------
2622 * Add provisional IANA header field names
2623 * Add string_view_body
2624 * Call on_chunk when the extension is empty
2625 * HTTP/1.1 is the default version
2626 * Try harder to find Boost (cmake)
2628 * More basic_parser tests
2629 * Add an INTERFACE cmake target
2630 * Convert buffer in range loops
2632 --------------------------------------------------------------------------------
2636 * Don't allocate memory to handle obs-fold
2637 * Avoid a parser allocation using non-flat buffer
2638 * read_size replaces read_size_helper
2640 --------------------------------------------------------------------------------
2644 * static_buffer coverage
2645 * flat_buffer coverage
2646 * multi_buffer coverage
2647 * consuming_buffers members and coverage
2648 * basic_fields members and coverage
2650 * Retain ownership when reading using a message
2651 * Fix incorrect use of [[fallthrough]]
2655 * basic_fields refactor
2657 --------------------------------------------------------------------------------
2661 * Fix basic_parser::maybe_flatten
2662 * Fix read_size_helper usage
2664 --------------------------------------------------------------------------------
2668 * flat_buffer is an AllocatorAwareContainer
2669 * Add drain_buffer class
2673 * `auto_fragment` is a member of `stream`
2674 * `binary`, `text` are members of `stream`
2675 * read_buffer_size is a member of `stream`
2676 * read_message_max is a member of `stream`
2677 * `write_buffer_size` is a member of `stream`
2678 * `ping_callback` is a member of stream
2679 * Remove `opcode` from `read`, `async_read`
2680 * `read_frame` returns `bool` fin
2681 * `opcode` is private
2682 * finish(error_code&) is a BodyReader requirement
2686 * Change call sites which use `auto_fragment` with `set_option`
2687 to call `stream::auto_fragment` instead.
2689 * Change call sites which use message_type with `set_option`
2690 to call `stream::binary` or `stream::text` instead.
2692 * Change call sites which use `read_buffer_size` with `set_option` to
2693 call `stream::read_buffer_size` instead.
2695 * Change call sites which use `read_message_max` with `set_option` to
2696 call `stream::read_message_max` instead.
2698 * Change call sites which use `write_buffer_size` with `set_option` to
2699 call `stream::write_buffer_size` instead.
2701 * Change call sites which use `ping_callback1 with `set_option` to
2702 call `stream::ping_callback` instead.
2704 * Remove the `opcode` reference parameter from calls to synchronous
2705 and asynchronous read functions, replace the logic with calls to
2706 `stream::got_binary` and `stream::got_text` instead.
2708 * Remove the `frame_info` parameter from all read frame call sites
2710 * Check the return value 'fin' for calls to `read_frame`
2712 * Change ReadHandlers passed to `async_read_frame` to have
2713 the signature `void(error_code, bool fin)`, use the `bool`
2714 to indicate if the frame is the last frame.
2716 * Remove all occurrences of the `opcode` enum at call sites
2718 --------------------------------------------------------------------------------
2722 * Fix operator<< for header
2724 * Fix file_body::get() not setting the more flag correctly
2725 * Use BOOST_FALLTHROUGH
2726 * Use BOOST_STRINGIZE
2727 * DynamicBuffer benchmarks
2728 * Add construct, destroy to handler_alloc
2729 * Fix infinite loop in basic_parser
2733 * Tune up static_buffer
2734 * multi_buffer implementation change
2738 * Call sites passing a number to multi_buffer's constructor
2739 will need to be adjusted, see the corresponding commit message.
2741 --------------------------------------------------------------------------------
2745 * parser is constructible from other body types
2746 * Add field enumeration
2747 * Use allocator more in basic_fields
2748 * Fix basic_fields allocator awareness
2749 * Use field in basic_fields and call sites
2750 * Use field in basic_parser
2751 * Tidy up basic_fields, header, and field concepts
2752 * Fields concept work
2753 * Body documentation work
2754 * Add missing handler_alloc nested types
2755 * Fix chunk delimiter parsing
2756 * Fix test::pipe read_size
2757 * Fix chunk header parsing
2761 * Remove header_parser
2762 * Add verb to on_request for parsers
2764 * Protect basic_fields special members
2765 * Remove message connection settings
2766 * Remove message free functions
2767 * Remove obsolete serializer allocator
2768 * http read_some, async_read_some don't return bytes
2770 --------------------------------------------------------------------------------
2774 * Use <iosfwd> instead of <ostream>
2778 * Add HEAD request example
2782 * Refactor method and verb
2783 * Canonicalize string_view parameter types
2784 * Tidy up empty_body writer error
2785 * Refactor header status, reason, and target
2787 --------------------------------------------------------------------------------
2791 * Make buffer_prefix_view public
2792 * Remove detail::sync_ostream
2793 * Tidy up core type traits
2797 * Tidy up chunk decorator
2798 * Rename to buffer_cat_view
2799 * Consolidate parsers to parser.hpp
2802 --------------------------------------------------------------------------------
2806 * Disable operator<< for buffer_body
2807 * buffer_size overload for basic_multi_buffer::const_buffers_type
2808 * Fix undefined behavior in pausation
2809 * Fix leak in basic_flat_buffer
2813 * Refactor treatment of request-method
2814 * Refactor treatment of status code and obsolete reason
2815 * Refactor HTTP serialization and parsing
2817 --------------------------------------------------------------------------------
2822 * Documentation work
2826 * Remove HTTP header aliases
2827 * Refactor HTTP serialization
2828 * Refactor type traits
2830 --------------------------------------------------------------------------------
2834 * Workaround for boost::asio::basic_streambuf type check
2835 * Fix message doc image
2836 * Better test::enable_yield_to
2837 * Fix header::reason
2838 * Documentation work
2839 * buffer_view skips empty buffer sequences
2840 * Disable reverse_iterator buffer_view test
2842 --------------------------------------------------------------------------------
2846 * Use BOOST_THROW_EXCEPTION
2847 * Tidy up read_size_helper and dynamic buffers
2848 * Require Boost 1.58.0 or later
2849 * Tidy up and make get_lowest_layer public
2850 * Use BOOST_STATIC_ASSERT
2851 * Fix async return values in docs
2852 * Fix README websocket example
2853 * Add buffers_adapter regression test
2854 * Tidy up is_dynamic_buffer traits test
2855 * Make buffers_adapter meet requirements
2857 --------------------------------------------------------------------------------
2861 * Require Boost 1.64.0
2862 * Fix strict aliasing warnings in buffers_view
2863 * Tidy up buffer_prefix overloads and test
2864 * Add write limit to test::string_ostream
2865 * Additional constructors for consuming_buffers
2867 --------------------------------------------------------------------------------
2872 * Add formal review notes
2873 * Make buffers_view a public interface
2875 --------------------------------------------------------------------------------
2879 * Trim Appveyor matrix rows
2880 * Concept revision and documentation
2881 * Remove coveralls integration
2882 * Tidy up formal parameter names
2886 * Tidy up websocket::close_code enum and constructors
2890 * Return http::error::end_of_stream on HTTP read eof
2891 * Remove placeholders
2892 * Rename prepare_buffer(s) to buffer_prefix
2893 * Remove handler helpers, tidy up hook invocations
2895 --------------------------------------------------------------------------------
2899 * Add to_static_string
2900 * Consolidate get_lowest_layer in type_traits.hpp
2901 * Fix basic_streambuf movable trait
2902 * Tidy up .travis.yml
2904 --------------------------------------------------------------------------------
2908 Beast versions are now identified by a single integer which
2909 is incremented on each merge. The macro BEAST_VERSION
2910 identifies the version number, currently at 39. A version
2911 setting commit will always be at the tip of the master
2912 and develop branches.
2914 * Use beast::string_view alias
2915 * Fixed braced-init error with older gcc
2919 * Tidy up basic_parser javadocs
2923 * Add websocket async echo ssl server test:
2924 * Fix eof error on ssl::stream shutdown
2928 * Refactor http::header contents
2929 * New ostream() returns dynamic buffer output stream
2930 * New buffers() replaces to_string()
2931 * Rename to multi_buffer, basic_multi_buffer
2932 * Rename to flat_buffer, basic_flat_buffer
2933 * Rename to static_buffer, static_buffer_n
2934 * Rename to buffered_read_stream
2935 * Harmonize concepts and identifiers with net-ts
2936 * Tidy up HTTP reason_string
2938 --------------------------------------------------------------------------------
2942 * Refactor static_string
2944 * Use static_string for WebSocket handshakes
2945 * Simplify get_lowest_layer test
2946 * Add test_allocator to extras/test
2947 * More flat_streambuf tests
2948 * WebSocket doc work
2949 * Prevent basic_fields operator[] assignment
2953 * Refactor WebSocket error codes
2954 * Remove websocket::keep_alive option
2956 --------------------------------------------------------------------------------
2960 * CMake hide command lines in .vcxproj Output windows"
2961 * Rename to detail::is_invocable
2962 * Rename project to http-bench
2963 * Fix flat_streambuf
2964 * Add ub sanitizer blacklist
2965 * Add -funsigned-char to asan build target
2966 * Fix narrowing warning in table constants
2970 * Add is_upgrade() free function
2971 * Document websocket::stream thread safety
2972 * Rename to websocket::detail::pausation
2976 * Provide websocket::stream accept() overloads
2977 * Refactor websocket decorators
2978 * Move everything in basic_fields.hpp to fields.hpp
2979 * Rename to http::dynamic_body, consolidate header
2981 --------------------------------------------------------------------------------
2987 --------------------------------------------------------------------------------
2991 * Add Appveyor build scripts and badge
2992 * Tidy up MSVC CMake configuration
2993 * Make close_code a proper enum
2994 * Add flat_streambuf
2995 * Rename to BEAST_DOXYGEN
2996 * Update .gitignore for VS2017
2997 * Fix README.md CMake instructions
3001 * New HTTP interfaces
3002 * Remove http::empty_body
3004 --------------------------------------------------------------------------------
3008 * Fix and tidy up CMake build scripts
3010 --------------------------------------------------------------------------------
3014 * Require Visual Studio 2015 Update 3 or later
3018 * Use fwrite return value in file_body
3022 * Set internal state correctly when writing frames
3023 * Add decorator unit test
3024 * Add write_frames unit test
3026 --------------------------------------------------------------------------------
3030 * Add io_service completion invariants test
3031 * Update CMake scripts for finding packages
3035 * Remove http Writer suspend and resume feature
3037 --------------------------------------------------------------------------------
3041 * Tidy up build settings
3042 * Add missing dynabuf_readstream member
3046 * Move the handler, don't copy it
3048 --------------------------------------------------------------------------------
3054 * Fix race in pings during reads
3055 * Fix race in close frames during reads
3056 * Fix race when write suspends
3057 * Allow concurrent websocket async ping and writes
3059 --------------------------------------------------------------------------------
3063 * Fix compilation error in non-template class
3064 * Document type-pun in buffer_cat
3065 * Correctly check ostream modifier (/extras)
3069 * Fix Body requirements doc
3070 * Fix illegal HTTP characters accepted as hex zero
3071 * Fix Writer return value documentation
3075 * Fix race in writes during reads
3078 --------------------------------------------------------------------------------
3082 * Split out and rename test stream classes
3083 * Restyle async result constructions
3084 * Fix HTTP split parse edge case
3086 --------------------------------------------------------------------------------
3090 * Tidy up tests and docs
3091 * Add documentation building instructions
3095 * Invoke callback on pings and pongs
3096 * Move basic_streambuf to streambuf.hpp
3098 --------------------------------------------------------------------------------
3102 * Tidy up warnings and tests
3104 --------------------------------------------------------------------------------
3108 * Fixes for WebSocket echo server
3109 * Fix 32-bit arm7 warnings
3110 * Remove unnecessary include
3111 * WebSocket server examples and test tidying
3112 * Fix deflate setup bug
3116 * Better handler_ptr
3118 --------------------------------------------------------------------------------
3122 * bjam use clang on MACOSX
3123 * Simplify Travis package install specification
3124 * Add optional yield_to arguments
3125 * Make decorator copyable
3126 * Add WebSocket permessage-deflate extension support
3128 --------------------------------------------------------------------------------
3132 * Tune websocket echo server for performance
3133 * Add file and line number to thrown exceptions
3134 * Better logging in async echo server
3135 * Add copy special members
3136 * Fix message constructor and special members
3137 * Travis CI improvements
3139 --------------------------------------------------------------------------------
3143 * Fix broken Intellisense
3144 * Implement the Asio deallocation-before-invocation guarantee
3145 * Add handler helpers
3146 * Avoid copies in handler_alloc
3147 * Update README.md example programs
3148 * Fix websocket stream read documentation
3149 * Disable Boost.Coroutine deprecation warning
3150 * Update documentation examples
3152 --------------------------------------------------------------------------------
3156 * Remove extraneous includes
3158 --------------------------------------------------------------------------------
3168 * Rename HTTP identifiers
3170 --------------------------------------------------------------------------------
3174 * Boost library min/max guidance
3175 * Improvements to code coverage
3176 * Use boost::lexical_cast instead of std::to_string
3177 * Fix prepare_buffers value_type
3178 * Fix consuming_buffers value_type
3183 * Make chunk_encode public
3184 * Add write, async_write, operator<< for message_headers
3185 * Add read, async_read for message_headers
3186 * Fix with_body example
3190 * Optimize utf8 validation
3191 * Optimize mask operations
3195 * Refactor message and message_headers declarations
3196 * prepared_buffers is private
3197 * consume_buffers is removed
3199 --------------------------------------------------------------------------------
3203 * Increase optimization settings for MSVC builds
3207 * Check invariants in parse_op:
3208 * Clean up message docs
3212 * Write buffer option does not change capacity
3213 * Close connection during async_read on close frame
3214 * Add pong, async pong to stream
3218 * Meet DynamicBuffer requirements for static_streambuf
3219 * Fix write_frame masking and auto-fragment handling
3223 * unit_test::suite fixes:
3224 - New overload of fail() specifies file and line
3225 - BEAST_EXPECTS only evaluates the reason string on a failure
3228 --------------------------------------------------------------------------------
3232 * Change implicit to default value in example
3233 * Tidy up some declarations
3234 * Fix basic_streambuf::capacity
3235 * Add basic_streambuf::alloc_size
3236 * Parser callbacks may not throw
3237 * Fix Reader concept doc typo
3238 * Add is_Reader trait
3239 * Tidy up basic_headers for documentation
3240 * Tidy up documentation
3241 * Add basic_parser_v1::reset
3242 * Fix handling of body_what::pause in basic_parser_v1
3243 * Add headers_parser
3244 * Engaged invokable is destructible
3245 * Improve websocket example in README.md
3246 * Refactor read_size_helper
3250 * Added init() to Reader requirements
3251 * Reader must be nothrow constructible
3252 * Reader is now constructed right before reading the body
3253 - The message passed on construction is filled in
3254 * Rework HTTP concepts:
3255 - Writer uses write instead of operator()
3256 - Refactor traits to use void_t
3257 - Remove is_ReadableBody, is_WritableBody
3258 - Add has_reader, has_writer, is_Reader, is_Writer
3259 - More friendly compile errors on failed concept checks
3260 * basic_parser_v1 requires all callbacks present
3261 * on_headers parser callback now returns void
3262 * on_body_what is a new required parser callback returning body_what
3264 --------------------------------------------------------------------------------
3268 * Make value optional in param-list
3269 * Frame processing routines are member functions
3270 * Fix on_headers called twice from basic_parser_v1
3271 * Constrain parser_v1 constructor
3272 * Improve first line serialization
3273 * Add pause option to on_headers interface
3274 * Refactor base_parser_v1 callback traits:
3275 * Refine Parser concept
3276 * Relax ForwardIterator requirements in FieldSequence
3277 * Fix websocket failure testing
3278 * Refine Writer concept and fix exemplar in documentation
3282 * Rename mask_buffer_size to write_buffer_size
3283 * Make auto_fragment a boolean option
3285 The message class hierarchy is refactored (breaking change):
3287 * One message class now models both HTTP/1 and HTTP/2 messages
3288 * message_v1, request_v1, response_v1 removed
3289 * New classes basic_request and basic_response model
3290 messages without the body.
3292 Error resolution: Callers should use message, request,
3293 and response instead of message_v1, request_v1, and
3294 response_v1 respectively.
3296 --------------------------------------------------------------------------------
3300 * rfc7230 section 3.3.2 compliance
3302 * Add Secure WebSocket example
3303 * Fix message_v1 constructor
3304 * Tidy up DynamicBuffer requirements
3305 * Tidy up error types and headers
3306 * Fix handling empty HTTP headers in parser_v1
3308 --------------------------------------------------------------------------------
3312 * Add missing rebind to handler_alloc
3313 * Fix error handling in http server examples
3314 * Fix CMake scripts for MinGW
3316 * Better WebSocket decorator
3317 * Update and tidy documentation
3319 --------------------------------------------------------------------------------
3323 * dstream improvements
3324 * Remove bin and bin64 directories
3325 * Tidy up .vcxproj file groupings
3327 --------------------------------------------------------------------------------
3331 * Use -p to print suites from unit test main.
3332 * BEAST_EXPECTS to add a reason string to test failures
3333 * Fix unit test runner to output all case names
3334 * Update README for build requirements
3335 * Rename to CHANGELOG.md
3337 --------------------------------------------------------------------------------
3341 * Set URI in generated WebSocket Upgrade requests
3342 * Rename echo server class and file names
3343 * Rename to DynamicBuffer in some code and documentation
3344 * Fix integer warnings in Windows builds
3345 * Add 32 and 64 bit Windows build support
3346 * Update README for build instructions and more
3347 * Add repository and documentation banners
3349 --------------------------------------------------------------------------------
3353 * Fix compilation warnings
3354 * Add websocketpp comparison to HTML documentation
3356 --------------------------------------------------------------------------------
3360 * Fix CMakeLists.txt
3362 --------------------------------------------------------------------------------
3366 * Fix include in example code
3367 * Fix basic_headers rfc2616 Section 4.2 compliance
3369 --------------------------------------------------------------------------------
3373 * Fix prepare by calling init. prepare() can throw depending on the
3374 implementation of Writer. Publicly provided beast::http writers never throw.
3375 * Fixes to example HTTP server
3376 * Fully qualify ambiguous calls to read and parse
3377 * Remove deprecated http::stream wrapper
3378 * Example HTTP server now calculates the MIME-type
3379 * Fixes and documentation for teardown and use with SSL:
3380 * Add example code to rfc7230 javadocs
3381 * Remove extraneous header file <beast/http/status.hpp>
3382 * Add skip_body parser option
3384 --------------------------------------------------------------------------------
3388 * Use SFINAE on return values
3389 * Use beast::error_code instead of nested types
3390 * Tidy up use of GENERATING_DOCS
3391 * Remove obsolete RFC2616 functions
3392 * Add message swap members and free functions
3393 * Add HTTP field value parser containers: ext_list, param_list, token_list
3394 * Fixes for some corner cases in basic_parser_v1
3395 * Configurable limits on headers and body sizes in basic_parser_v1
3399 * ci_equal is moved to beast::http namespace, in rfc7230.hpp
3401 * "DynamicBuffer","dynabuf" renamed from "Streambuf", "streambuf". See:
3402 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4478.html#requirements.dynamic_buffers
3404 * basic_parser_v1 adheres to rfc7230 as strictly as possible
3406 --------------------------------------------------------------------------------