• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Version 300:
2
3* Fix compile errors under Clang 3.4
4* Fix portability bug in websocket server sync example.
5
6--------------------------------------------------------------------------------
7
8Version 299:
9
10* Fix race in http-crawl example.
11
12--------------------------------------------------------------------------------
13
14Version 298:
15
16* Support BOOST_ASIO_NO_TS_EXECUTORS.
17* Use strand<> rather than legacy executor io_context::strand.
18* Use dispatch/post free functions to be independent of executor concept.
19* New name for polymorphic executor. Trait for detecting new executors.
20* Handler invoke and allocation hooks are deprecated.
21
22--------------------------------------------------------------------------------
23
24Version 297:
25
26* iless and iequal take part in Heterogeneous Lookup
27* Fix `max` compile error
28* Deprecate `string_param` (API Change)
29
30API Changes:
31
32* `string_param`, which was previously the argument type when setting field values
33   has been replaced by `string_view`. Because of this, it is no longer possible to
34   set message field values directly as integrals.
35
36   Users are required to convert numeric arguments to a string type prior to calling
37   `fields::set` et. al.
38
39   Beast provides the non-allocating `to_static_string()` function for this purpose.
40
41   To set Content-Length field manually, call `message::content_length`.
42
43--------------------------------------------------------------------------------
44
45Version 296:
46
47* Remove buffers_adapter.hpp (API Change)
48* Remove zlib error `invalid_code_lenths`(sic) (API Change)
49* Remove `core/type_traits.hpp` (API Change)
50* Remove `reset` function from `flat_static_buffer` (API Change)
51* Remove `mutable_data_type` from Dyanmic Buffers (API Change)
52* Remove deprecated lowest_layer from test::stream
53* Remove handler_pointer (API Change)
54* Remove websocket::role_type (API Change)
55* Remove accept_ex and handshake_ex variants (API Change)
56* Rename to BOOST_BEAST_ALLOW_DEPRECATED (API Change)
57
58API Changes:
59
60* The file `core/buffers_adapter.hpp` has been removed along with the deprecated
61  alias typename `buffers_adapter`. Affected programs should use
62  `core/buffers_adapator.hpp` and the type `buffers_adaptor`.
63
64* The error code enum `invalid_code_lenths` was a synonym of `invalid_code_lengths`.
65  Affected programs should be modified to use `invalid_code_lengths`.
66
67* The `core/type_traits.hpp` public header has been removed and along with it
68  the type trait `is_completion_handler`. Beast uses the CompletionHandler correctness
69  checks provided by Asio. In a c++20 environment, these convert to concept checks.
70
71* The `reset` function has been removed from `flat_static_buffer`. Use the
72  `clear` function instead.
73
74* Code that depends on `mutable_data_type` should be refactored to use
75  `mutable_buffers_type`. Classes affected are:
76  - `buffers_adaptor`
77  - `flat_buffer`
78  - `flat_static_buffer`
79  - `multi_buffer`
80  - `static_buffer`
81
82* handler_ptr has been removed. Users should use net::bind_handler and/or
83bind_front_handler instead.
84
85* websocket::role_type has been removed. Users should use beast::role_type instead.
86
87* The following deprecated functions have been removed:
88  - websocket::async_accept_ex
89  - websocket::async_handshake_ex
90  - websocket::accept_ex
91  - websocket::handshake_ex
92
93Programs still using these names should be refactored to use the `decorator` feature and
94the remaining handshake and accept functions.
95
96* The macro BOOST_BEAST_NO_DEPRECATED will no longer be noticed by Beast. The only way to
97enable deprecated functionality is now the macro BOOST_BEAST_ALLOW_DEPRECATED which is
98undefined by default. That is, all deprecated behaviour is disabled by default.
99
100--------------------------------------------------------------------------------
101
102Version 295:
103
104* Parser body_limit is optional (API Change)
105* Fix basic_stream expires_after (API Change)
106* Fix FILE namespace qualification
107
108API Changes:
109
110* The signature of basic_parser<>::body_limit(n) has changed. It now accepts an
111optional std::uint64_t. The caller may indicate that no body limit is required
112by calling body_limit(boost::none). The default limits remain in place in order
113to maintain 'safe by default' behaviour.
114
115* basic_stream::expires_after used to take a nanosecond duration type argument. This
116required users on systems where the steady_clock::duration_type was less accurate
117to explicity duration_cast when calling this function, making code non-portable.
118The duration type is now that of the embedded steady_clock.
119
120--------------------------------------------------------------------------------
121
122Version 294:
123
124* Fix FILE namespace qualification
125* Fix http read bytes_transferred (API Change)
126
127API Changes:
128
129The following functions did not previously report the number of bytes consumed
130by the HTTP parser:
131
132- http::read
133- http::read_header
134- http::read_some
135- http::async_read
136- http::async_read_header
137- http::async_read_some
138
139As of now, the `bytes_transferred` return value will indicate the number of bytes
140consumed by the parser when parsing an http message.
141
142Actions Required:
143
144- Modify calling code which depends on the value returned from these functions.
145
146--------------------------------------------------------------------------------
147
148Version 293:
149
150* Fix async_connect documentation
151* Fix assert in websocket
152* No automatic User-Agent in WebSocket
153
154Behaviour Changes:
155
156* No automatic User-Agent in WebSocket
157  Beast websocket streams will no longer automatically set the
158  User-Agent HTTP header during client handshake. This header is not required
159  by the WebSocket standard. If this field is required, user code may set it
160  in the decorator
161
162--------------------------------------------------------------------------------
163
164Version 292:
165
166* Fix compile errors on Visual Studio with /std:c++latest
167* Fix standalone compilation error with std::string_view
168* OpenSSL 1.0.2 or later is required
169* Fix c++20 deprecation warning in span_body
170
171--------------------------------------------------------------------------------
172
173Version 291:
174
175* Test websocket with use_awaitable
176* Test http write with use_awaitable
177* Test http read with use_awaitable
178* Fix use buffered_read_stream with use_awaitable
179* Implement is_completion_token_for trait
180* Test use_awaitable with basic_stream
181* Fix async_detect_ssl with use_awaitable
182* Add clang coroutines-ts to circleci config
183
184--------------------------------------------------------------------------------
185
186Version 290:
187
188* Travis build host now bionic
189* Update Release Notes
190
191Version 289:
192
193* Fix Host header in websocket examples
194
195--------------------------------------------------------------------------------
196
197Version 288:
198
199* Fix Content-Length parsing
200* Update credits
201
202--------------------------------------------------------------------------------
203
204Version 287:
205
206* Remove CODE_OF_CONDUCT.md
207* Refactor websocket read
208* Correct buffer_bytes documentation
209* Fix examples to dispatch to strand
210* Ensure basic_stream::close will not throw
211
212--------------------------------------------------------------------------------
213
214Version 286:
215
216* Refactor multi_buffer
217* Refactor buffers_adapter
218* Refactor static_buffer
219* Refactor flat_buffer
220* Refactor flat_static_buffer
221* Fix missing include in sha1.hpp
222* Fix ostream warning
223* Field digest is endian-independent
224* update broken links in README
225* Fix ostream flush
226
227API Changes:
228
229* Nested const and mutable buffer types for all
230  Beast dynamic buffers are refactored. Affected types:
231  - buffers_adapter
232  - flat_buffer
233  - flat_static_buffer
234  - multi_buffer
235  - static_buffer
236
237* Nested mutable_data_type in Beast dynamic buffers is deprecated:
238
239Changes Required:
240
241* Use nested mutable_buffers_type instead of mutable_data_type,
242  or define BOOST_BEAST_ALLOW_DEPRECATED
243
244--------------------------------------------------------------------------------
245
246Version 285:
247
248* Translate some win32 errors to net error codes
249* enable circleci integration
250* flat_buffer shrink_to_fit is noexcept
251* moved-from dynamic buffers do not clear if different allocator
252* fix erase field
253
254--------------------------------------------------------------------------------
255
256Version 284:
257
258* fix compilation macro documentation
259* examples use strands correctly
260* update root certificates in examples
261* clarify end-of-file behaviour in File::read docs
262* file_body returns short_read on eof during read
263* fix bug in win32 file_body
264
265--------------------------------------------------------------------------------
266
267Version 283:
268
269* ostream_buffer satisfies preconditions of DynamicBuffer_v1::commit
270* Add accessor function to File member of basic_file_body
271
272Version 282:
273
274* Use superproject docca
275* Fix release build of docs
276* file_win32 supports UTF-8 paths
277* file_stdio supports unicode paths
278
279--------------------------------------------------------------------------------
280
281Version 281:
282
283* Travis builds docs
284* Fix echo-op test
285* file_win32 bodies respect http::serializer::split
286
287--------------------------------------------------------------------------------
288
289Version 280:
290
291* Fix non-msvc cmake
292* Use docca master branch
293
294--------------------------------------------------------------------------------
295
296Version 279:
297
298* Use regular throw in test
299* Fix pragma warning
300
301--------------------------------------------------------------------------------
302
303Version 278:
304
305* Use regular throw in test
306
307--------------------------------------------------------------------------------
308
309Version 277:
310
311* Update release notes
312
313--------------------------------------------------------------------------------
314
315Version 276:
316
317* https_get example sends the Host header
318* Fix async_close error code when async_read times out
319* Refactor zlib tests and fix enum typo
320
321--------------------------------------------------------------------------------
322
323Version 275:
324
325* Async init-fns use the executor's default token
326* Add basic_stream::rebind_executor
327* Use automatically deduced return types for all async operations
328* Support Concepts for completion token params
329
330--------------------------------------------------------------------------------
331
332Version 274:
333
334* Fix leftovers in basic_parser corner case
335
336--------------------------------------------------------------------------------
337
338Version 273:
339
340* Squelch spurious websocket timer assert
341* Use the executor type in basic_stream timer
342
343--------------------------------------------------------------------------------
344
345Version 272:
346
347* Add BEAST_THROWS
348* Add zlib tests and fixes
349
350--------------------------------------------------------------------------------
351
352Version 271:
353
354* Add HTTP async client with system_executor example
355* Add WebSocket async client with system_executor example
356* Fix data race in HTTP server examples
357* Fix data race in WebSocket examples
358
359--------------------------------------------------------------------------------
360
361Version 270:
362
363* Silence unused variables
364* Fix typo
365
366--------------------------------------------------------------------------------
367
368Version 269:
369
370* Fix /permissive- missing include
371* Add test
372
373--------------------------------------------------------------------------------
374
375Version 268:
376
377* root_certificates.hpp is not for production
378
379--------------------------------------------------------------------------------
380
381Version 267:
382
383* Add package for Travis config
384* Fix signed/unsigned mismatch in file_stdio::seek
385* basic_stream dtor cannot throw
386* cmake: check policy first
387* Add default dtors to satisfy -Wnon-virtual-dtor
388* Multiple I/O of the same type is not supported
389
390--------------------------------------------------------------------------------
391
392Version 266:
393
394* Fix some missing deduced return types in the docs
395
396--------------------------------------------------------------------------------
397
398Version 265:
399
400* Fix outgoing websocket message compression
401
402--------------------------------------------------------------------------------
403
404Version 264:
405
406* Handle overflow in max size calculation in `basic_dynamic_body`
407* Fix unused variable warnings in tests
408* Fix missing initializer warning in `basic_fields`
409* Remove unused functions in `impl/static_string.hpp`
410* Fix unused variable warning in `multi_buffer`
411* Fix header-only compilation errors in some configurations
412* Workaround for miscompilation in MSVC 14.2
413
414--------------------------------------------------------------------------------
415
416Version 263:
417
418* Update documentation
419
420--------------------------------------------------------------------------------
421
422Version 262:
423
424* Fix deallocate in multi_buffer
425
426--------------------------------------------------------------------------------
427
428Version 261:
429
430* Deduplicate `websocket::read_size_hint` definition
431* Fix UB in websocket read tests
432* Remove redundant includes in websocket
433* Simplify websocket::detail::prng
434* Don't over-allocate in http::basic_fields
435* Fix multi_buffer allocation alignment
436* Tidy up buffers_range
437
438--------------------------------------------------------------------------------
439
440Version 260:
441
442* More split compilation in rfc7230.hpp
443* Qualify calls to `beast::iequals` in basic_parser.ipp
444* More split compilation in websocket/detail/mask.hpp
445* Cleanup transitive includes in beast/core/detail/type_traits.hpp
446* Simplify generation of sec-websocket-key
447* Move detail::base64 helpers to tests
448* Remove redundant includes in core
449
450--------------------------------------------------------------------------------
451
452Version 259:
453
454* Reduce the number of instantiations of filter_token_list
455* Remove the use of `static_string` from `http::fields`
456* Add gcc-9 to AzP CI test matrix
457* Enable split compilation in http::basic_fields
458* Remove redundant instation of `static_string` in websocket
459* Remove redundant use of `asio::coroutine` in `flat_stream`
460* Remove unused includes from `test::stream`
461* Move `char_buffer` into a separate file
462* Fix coverage collection in AzP CI
463* Improve performance of `http::string_to_verb`
464* Replace uses of `net::coroutine` with `asio::coroutine`
465* Replace uses of `net::spawn` with `asio::spawn`
466* Use `beast::read_size` in `detail::read`
467
468--------------------------------------------------------------------------------
469
470Version 258:
471
472* Fix separate compilation in CI
473* Fix clang inititalization warning in websocket
474* Remove redundant use of `yield_to` in parser tests
475* Add VS 2019 AzP CI matrix item
476* Clean up typo in chat websocket javascript client
477
478--------------------------------------------------------------------------------
479
480Version 257:
481
482* Add b2 features for compile-time options used in testing
483* Remove redundant dependencies in http/server/fast example
484* Remove experimental/unit_test/thread.hpp
485* Use `if` statement in basic_stream::transfer_op
486* Fix flat_buffer copy members
487
488--------------------------------------------------------------------------------
489
490Version 256:
491
492* Remove uses of the deprecated `buffers` function
493* Remove uses of deprecated methods in websocket tests
494* Remove redundant use of `static_string`
495* Remove redundant template in service_base
496* Expand CI matrix using Azure Pipelines
497* Make chat websocket javascript client more user friendly
498* `allocator_traits::construct` is used for user-defined types
499* Add 1-element specialization for `buffers_cat`
500* Fix `buffers_cat` iterator tests
501* Don't pessimize-move
502* Use steady_timer type
503* Preserve operation_aborted on partial message
504
505--------------------------------------------------------------------------------
506
507Version 255:
508
509* Add idle ping suspend test
510* Fix moved-from executor in idle ping timeout
511
512--------------------------------------------------------------------------------
513
514Version 254:
515
516* Fix data race in test::stream::connect
517* Fix UB in websocket close tests
518* Fix uninitalized memory use in deflate_stream
519* Fix gcc-8 warning in websocket::stream
520
521--------------------------------------------------------------------------------
522
523Version 253:
524
525* Fix async_detect_ssl handler type
526* member get_executor const-correctness
527* Fix min/max on MSVC
528* Relax requirements for vector_body
529
530--------------------------------------------------------------------------------
531
532Version 252:
533
534* More std::string_view fixes
535* CI copies to libs/beast
536
537--------------------------------------------------------------------------------
538
539Version 251:
540
541* Clean up CI scripts
542* detect_ssl uses bool
543* launder pointers
544* Fix compilation on MSVC with std::string_view
545* Replace static_string in parser
546
547--------------------------------------------------------------------------------
548
549Version 250:
550
551* Use SaxonHE in reference generation
552* Cleanup endianness conversions
553* Set parser status and flags even if body_limit_ has been reached
554
555--------------------------------------------------------------------------------
556
557Version 249:
558
559* Move friend function template definition
560
561--------------------------------------------------------------------------------
562
563Version 248:
564
565* Don't use a moved-from handler
566
567--------------------------------------------------------------------------------
568
569Version 247:
570
571* Fix async_base immediate completion
572
573--------------------------------------------------------------------------------
574
575Version 246:
576
577* decorator ctor is explicit
578
579--------------------------------------------------------------------------------
580
581Version 245:
582
583* decorator constructor is constrained
584
585--------------------------------------------------------------------------------
586
587Version 244:
588
589* Tidy up declval in some traits
590* Fix websocket keep-alive ping expiration
591
592--------------------------------------------------------------------------------
593
594Version 243:
595
596* Fix some typos
597* Tidy up file_stdio for VS2015
598* Fix http::message constructor constraint
599
600--------------------------------------------------------------------------------
601
602Version 242:
603
604* test::stream has deprecated lowest_layer for ssl
605* MSVC uses ::fopen_s
606* Fix http::message constructor constraint
607* Check defined(BOOST_MSVC)
608
609--------------------------------------------------------------------------------
610
611Version 241:
612
613* Tidy up a doc code snippet
614* basic_parser::content_length is stable (API Change)
615
616--------------------------------------------------------------------------------
617
618Version 240:
619
620* Fix ssl_stream teardown
621
622--------------------------------------------------------------------------------
623
624Version 239:
625
626* More split compilation in HTTP
627
628--------------------------------------------------------------------------------
629
630Version 238:
631
632* Refactor Jamfiles to work with release layout
633
634--------------------------------------------------------------------------------
635
636Version 237:
637
638* cmake: Use static libs to speed up builds
639
640--------------------------------------------------------------------------------
641
642Version 236:
643
644* root_certificates.hpp: brought in the server certificate
645
646--------------------------------------------------------------------------------
647
648Version 235:
649
650* Fix self-assignment warning in buffer test
651* Jamfile cleanup
652
653--------------------------------------------------------------------------------
654
655Version 234:
656
657* Don't link to OpenSSL needlessly (bjam)
658* HTTPS URLs in README.md
659
660--------------------------------------------------------------------------------
661
662Version 233:
663
664* Check __ANDROID__ instead
665* Use secure TLS/SSL versions
666
667--------------------------------------------------------------------------------
668
669Version 232:
670
671* Fix close_socket for net::basic_socket changes
672* Fix file_win32_write_op async initiation
673* Fix basic_stream lowest_layer for ssl
674
675--------------------------------------------------------------------------------
676
677Version 231:
678
679* Doc section names are stable
680* Add missing include
681* Constrain to_static_string to integers
682
683--------------------------------------------------------------------------------
684
685Version 230:
686
687* Don't use dynamic_buffer_ref
688* Remove dynamic_buffer_ref
689* Fix completion handler invocation signatures
690
691--------------------------------------------------------------------------------
692
693Version 229:
694
695* Rename to buffer_bytes
696* Tidy up examples
697* detect_ssl returns a bool
698* Fix stable_async_base example
699
700API Changes:
701
702* handler_ptr is deprecated
703
704Actions Required:
705
706* Replace use of `handler_ptr` with `stable_async_base`
707  and `allocate_stable`.
708
709--------------------------------------------------------------------------------
710
711Version 228:
712
713* Fix UB in decorator:
714* Sync up convenience headers
715* The Fields concept is deprecated (API Change)
716* Fix includes.xsl for newer doxygen
717* Tidy up quick reference
718* SSL teardowns are in an associated namespace
719
720--------------------------------------------------------------------------------
721
722Version 227:
723
724* Fix decorator for certain sizes
725
726--------------------------------------------------------------------------------
727
728Version 226:
729
730* Support -fno-exceptions
731* make_strand is in net::
732* Fix HTTP parser static string calculation
733* Move parser definitions to .ipp
734* Appveyor uses msvc-14.0
735
736--------------------------------------------------------------------------------
737
738Version 225:
739
740* Tidy up an unused function
741* Fix wsload jamfile
742* Examples use flat_buffer
743* Remove session_alloc (API Change)
744
745Actions Required:
746
747* Don't use session_alloc
748
749--------------------------------------------------------------------------------
750
751Version 224:
752
753* Remove extraneous error check in advanced-server-flex
754* Advanced servers use HTTP parser interfaces for reading
755* Reusing an HTTP parser returns an error
756
757--------------------------------------------------------------------------------
758
759Version 223:
760
761* Add test::stream::service
762* Add websocket service
763* Pausation abandoning test
764* Destroy abandoned websocket ops on shutdown
765
766--------------------------------------------------------------------------------
767
768Version 222:
769
770* stream_base::timeout::suggested is a nested function
771
772--------------------------------------------------------------------------------
773
774Version 221:
775
776* Rename to async_base, stable_async_base
777* role_type is in boost/beast/core/role.hpp (API Change)
778* Cleanup in test::stream internals
779* Pass references as pointers to async_initiate
780
781Actions Required:
782
783* Include <boost/beast/core/role.hpp> or
784  define BOOST_BEAST_ALLOW_DEPRECATED=1
785
786--------------------------------------------------------------------------------
787
788Version 220:
789
790* Documentation and release notes
791
792--------------------------------------------------------------------------------
793
794Version 219:
795
796* More split definitions in test::stream
797* Visual Studio 2017 minimum requirement for Windows
798* Better treatment of SSL short reads
799* ssl_stream is a public interface
800* basic_parser is abstract, not CRTP (API Change)
801* OpenSSL is required for tests and examples
802
803--------------------------------------------------------------------------------
804
805Version 218:
806
807* detect_ssl, async_detect_ssl are public interfaces
808* Add OpenSSL installation/setup instructions
809* Enable split Beast compilation for tests
810
811--------------------------------------------------------------------------------
812
813Version 217:
814
815* websocket idle pings
816* RatePolicy documentation
817* Pass strand to async_accept
818* Fix file_body_win32
819* Use async_initiate
820* Check BOOST_NO_CXX11_THREAD_LOCAL
821* Fast prng is pcg
822
823--------------------------------------------------------------------------------
824
825Version 216:
826
827* Refactor websocket::stream operations
828* Add websocket::stream timeouts
829* Use suggested timeouts in Websocket examples
830* Add make_strand
831* Add RatePolicy to basic_stream
832* Use async_initiate in basic_stream
833* basic_stream connects are members
834* Beast supports latest Asio changes (API Change)
835* WebSocket Decorator is a socket option (API Change)
836* Overloads of the following functions which accept a Decorator
837  are deprecated:
838  - accept, accept_ex
839  - handshake, handshake_ex
840  - async_accept, async_accept_ex
841  - async_handshake, async_handshake_ex
842
843Actions Required:
844
845* Code which passes decorator to any `websocket::stream` member
846  function should call `stream::set_option` instead with a newly
847  constructed `stream_base::decorator` object containing the
848  decorator. Alternatively, the macro `BOOST_BEAST_ALLOW_DEPRECATED`
849  may be defined to 1.
850
851* Fix compilation errors required by Asio changes
852
853--------------------------------------------------------------------------------
854
855Version 215:
856
857* basic_stream uses boost::shared_ptr
858* Remove bind_back_handler
859* bind_front_handler works with member functions
860* Examples use bind_front_handler
861* Add experimental test/handler.hpp
862* Rename to async_op_base::invoke_now
863* Add async_op_base::invoke
864* Remove CppCon2018 example
865* Examples use ssl_stream
866
867--------------------------------------------------------------------------------
868
869Version 214:
870
871* Handler binders use the associated allocator
872* Add detail::bind_continuation
873* Rewrite the echo-op example
874
875--------------------------------------------------------------------------------
876
877Version 213:
878
879* Fix posix_file::close handling of EINTR
880* basic_stream subsumes stranded_stream:
881* Use timeouts in HTTP server examples
882* Use timeouts in HTTP client examples
883* Use tcp_stream in WebSocket client examples
884* Use tcp_stream in WebSocket server examples
885* Use tcp_stream, HTTP timeouts in advanced servers
886
887--------------------------------------------------------------------------------
888
889Version 212:
890
891* dynamic_buffer_ref tests and tidy
892* flat_stream tests and tidy
893* stranded_socket tests and tidy
894* buffers_front tests
895* Improved websocket stream documentation
896
897--------------------------------------------------------------------------------
898
899Version 211:
900
901* close_socket is in stream_traits.hpp
902* Improvements to test::stream
903* Add stranded_stream
904* Add flat_stream
905* flat_buffer::clear preserves capacity
906* multi_buffer::clear preserves capacity
907* Fixes to rfc7230
908
909--------------------------------------------------------------------------------
910
911Version 210:
912
913* Tidy up read implementation
914* Fix stable_async_op_base javadoc
915* Better handling of stream timeouts
916* Add stream_traits.hpp
917* Add executor_type trait
918* Fix hexadecimal string conversion table
919* is_completion_handler, type_traits.hpp are deprecated
920* Fixes to test::stream::async_read
921
922API Changes:
923
924* Stream traits are now in stream_traits.hpp
925* `is_file` is now in file_base.hpp
926* is_completion_handler is deprecated
927
928Actions Required:
929
930* Include stream_traits.hpp as needed
931* Include file_base.hpp as needed
932* Use std::is_invocable instead of is_completion_handler
933
934--------------------------------------------------------------------------------
935
936Version 209:
937
938* Faster http::string_to_field
939* async_echo supports move-only handlers
940* test::stream maintains a handler work guard
941* Qualify buffer_copy, don't qualify buffer_size
942* Add dynamic_buffer_ref
943* Refactor quickref.xml
944* Add buffer_size
945
946--------------------------------------------------------------------------------
947
948Version 208:
949
950* Add get_lowest_layer free function
951* Add lowest_layer_type metafunction
952* Add close_socket, beast_close_socket customization
953* Doc work
954
955--------------------------------------------------------------------------------
956
957Version 207
958
959* Send from the strand
960* Pass the correct handler in basic_timeout_stream
961
962API Changes:
963
964* lowest_layer is removed
965
966Actions Required:
967
968* Remove lowest_layer and lowest_layer_type from user-defined streams.
969* Use the get_lowest_layer free function and the lowest_layer_type trait
970  as needed.
971
972--------------------------------------------------------------------------------
973
974Version 206
975
976* Clear error codes idiomatically
977* websocket stream uses shared_ptr<impl_type>
978* Add websocket-chat-multi example
979
980--------------------------------------------------------------------------------
981
982Version 205
983
984* Doc work
985* Add detail/soft_mutex.hpp
986* Add detail/prng.hpp
987
988--------------------------------------------------------------------------------
989
990Version 204
991
992* Add basic_timeout_stream
993* Unit test macros use the global suite
994* Doc work
995
996--------------------------------------------------------------------------------
997
998Version 203
999
1000* Update networking refresher doc
1001* Include error code in call to set_option
1002* saved_handler is a public interface
1003* Use new saved_handler in websocket
1004* session_alloc is thread-safe
1005* examples use flat_buffer
1006* parse_until is not static
1007* Boost.System is header-only
1008
1009--------------------------------------------------------------------------------
1010
1011Version 202
1012
1013* Use cxxstd instead of cxxflags
1014* Update coverage badge images
1015* Tidy up basic_stream_socket docs
1016* Refactor async_op_base
1017* Use async_op_base
1018* async_op_base is a public interface
1019* Add tests for bind_back_handler
1020* Add tests for async_op_base
1021
1022--------------------------------------------------------------------------------
1023
1024Version 201
1025
1026* Decay bound arguments in handler wrapper parameters
1027* Add bind_back_handler
1028* Tidy up default-constructed iterators
1029* Add core errors and conditions
1030* New basic_stream_socket
1031
1032--------------------------------------------------------------------------------
1033
1034Version 200
1035
1036* Don't include OpenSSL for core snippets
1037* Tidy up msvc-14 workaround in multi_buffer
1038* buffers_cat fixes and coverage
1039* Refactor buffers_adaptor
1040* Refactor buffers_range
1041* Fix and refactor buffers_cat
1042* Refactor buffers_prefix
1043* Add const and mutable buffer sequence traits
1044* Add buffers_iterator_type trait
1045* Use new buffer traits, remove old unused traits
1046* Optimize for size on buffers_cat preconditions
1047* Refactor buffers_suffix
1048* Tidy up flat_buffer tests
1049* Fix ostream prepare calculation for low limits
1050* Tidy up flat_static_buffer tests
1051* Add more tests for dynamic buffers
1052* Tidy up multi_buffer
1053* Refactor ostream
1054* Refactor static_buffer
1055* HTTP tidying
1056* Adjust static_asio lib options in Jamfile
1057* Add type_traits tests
1058* Add buffers_range_ref (replaces reference_wrapper parameter)
1059
1060API Changes:
1061
1062* buffers_adaptor replaces buffers_adapter (rename)
1063* make_printable replaces buffers (rename)
1064* Remove file_mode::append_new
1065
1066Actions Required:
1067
1068* Replace buffers_adapter.hpp with buffers_adaptor.hpp, and
1069  replace buffers_adapter with buffers_adaptor. Or, define
1070  BOOST_BEAST_ALLOW_DEPRECATED
1071
1072* Replace call sites to use make_printable instead of buffers,
1073  and also include make_printable.hpp instead of ostream.hpp.
1074
1075* Replace file_mode::append_new with file_mode::append
1076  or file_mode::append_existing instead of file_mode::append_new
1077
1078--------------------------------------------------------------------------------
1079
1080Version 199:
1081
1082* Workarounds for msvc-14
1083* Fix Appveyor badge links
1084
1085--------------------------------------------------------------------------------
1086
1087Version 198:
1088
1089* flat_buffer improvements
1090* multi_buffer improvements
1091* static_buffer improvements
1092* flat_static_buffer_improvements
1093* saved_handler maintains a work_guard (websocket)
1094* Add buffer_traits.hpp, buffers_type
1095* Tidy up experimental files
1096* Tidy up core files
1097* Fix bind_handler, bind_front_handler
1098* Improved handler bind wrapper tests
1099
1100API Changes:
1101
1102* Files return errc::bad_file_descriptor
1103* flat_static_buffer::reset is deprecated
1104
1105Actions Required:
1106
1107* Callers checking for errc::invalid_argument from calls to
1108  file APIs should check for errc::bad_file_descriptor instead.
1109
1110* Replace calls to flat_static_buffer::reset with
1111  flat_static_buffer::clear
1112
1113--------------------------------------------------------------------------------
1114
1115Version 197:
1116
1117* Improvements to echo-op example
1118* Crawler example clears the response before each read
1119* Use a struct instead of a pair in flat_stream (experimental)
1120
1121API Changes:
1122
1123* Refactor HTTP operations
1124
1125Actions Required:
1126
1127* Callers depending on the return value of http::read or
1128  http::async_read overloads should adjust the usage of
1129  the returned value as needed.
1130
1131--------------------------------------------------------------------------------
1132
1133Version 196:
1134
1135* Tidy up calls to placement new
1136* Remove unused type_traits
1137* Simplify handler_ptr
1138
1139--------------------------------------------------------------------------------
1140
1141Version 195:
1142
1143* net is a namespace alias for boost::asio
1144* Simplify multi_buffer and static_buffer sequences
1145* Documentation work
1146
1147--------------------------------------------------------------------------------
1148
1149Version 194:
1150
1151* http::async_read returns the right byte count on error
1152* Add net namespace alias
1153* Don't use-after-free in test
1154* Tidy up ssl_stream (experimental)
1155* Dynamic buffer improvements
1156* Saved handlers are dispatched
1157
1158--------------------------------------------------------------------------------
1159
1160Version 193:
1161
1162* Update ssl_stream signatures for networking changes
1163* Fix test::stream async_result transformation
1164* Tidy up test::stream
1165* Enable explicit instantiation of websocket::stream
1166
1167--------------------------------------------------------------------------------
1168
1169Version 192:
1170
1171* Use mp11::integer_sequence
1172* Tidy up warnings and deprecated usage
1173* http::message is not-a boost::empty_value
1174* Fix link in docs
1175* Fixes to timeout services (experimental)
1176
1177--------------------------------------------------------------------------------
1178
1179Version 191:
1180
1181* Add bind_front_handler
1182* Use bind_front_handler
1183* Simplify some type traits
1184* Use lean_tuple in buffers_cat
1185* Use lean_tuple in bind_handler, bind_front_handler
1186* Use mp11 in detail::variant
1187* Fix buffers_cat uninitialized warning
1188* Fix static_string uninitialized warning
1189* Fix warning in is_ssl_handshake
1190
1191--------------------------------------------------------------------------------
1192
1193Version 190:
1194
1195* Add missing includes to convenience headers
1196* Unit test framework is experimental
1197* Add buffers_range
1198* Rename experimental directory
1199* Improve compilation of tests for continuous integration
1200* Fix visibility warnings in test
1201
1202--------------------------------------------------------------------------------
1203
1204Version 189-hf1:
1205
1206* Fix broken doc link
1207* example/cppcon2018 only requires C++11
1208
1209--------------------------------------------------------------------------------
1210
1211Version 189:
1212
1213* Add CppCon2018 chat server example and video
1214
1215--------------------------------------------------------------------------------
1216
1217Version 188:
1218
1219* Remove extraneous strand from example
1220* Add missing include in http/read.ipp
1221* Test for gcc warning bug
1222* Fix a spurious gcc warning
1223
1224--------------------------------------------------------------------------------
1225
1226Version 187:
1227
1228* Add experimental timeout_socket
1229* Fix warning in file tests
1230* Fix uninitialized comparison in buffers iterator
1231* Partial support for BOOST_NO_EXCEPTIONS
1232* Fix a spurious gcc warning
1233* Test for gcc warning bug
1234* Add missing include
1235* Remove extraneous strand from example
1236
1237--------------------------------------------------------------------------------
1238
1239Version 186:
1240
1241* basic_fields uses intrusive base hooks
1242* Fix parsing of out-of-bounds hex values
1243
1244--------------------------------------------------------------------------------
1245
1246Version 185:
1247
1248* Remove extraneous function
1249* Fix some typos
1250* Add BOOST_BEAST_USE_STD_STRING_VIEW
1251* Fix timer on websocket upgrade in examples
1252
1253--------------------------------------------------------------------------------
1254
1255Version 183:
1256
1257* Fix a rare case of failed UTF8 validation
1258* Verify certificates in client examples
1259* Use boost::empty_value
1260* Workaround for http-server-fast and libstdc++
1261
1262--------------------------------------------------------------------------------
1263
1264Version 182:
1265
1266* Silence ubsan false positive
1267
1268--------------------------------------------------------------------------------
1269
1270Version 181:
1271
1272* Fix parse_dec algorithm
1273* Add parse_dec tests
1274
1275--------------------------------------------------------------------------------
1276
1277Version 180:
1278
1279* Fix http_server_stackless_ssl.cpp example
1280
1281--------------------------------------------------------------------------------
1282
1283Version 179:
1284
1285* Use the exchange() idiom in move constructors
1286* Most members of std::allocate are deprecated in C++17
1287* Remove some unused variables
1288
1289--------------------------------------------------------------------------------
1290
1291Version 178:
1292
1293* Use static_cast instead
1294
1295--------------------------------------------------------------------------------
1296
1297Version 177:
1298
1299* Add test for issue #1188
1300* Set /permissive-
1301* Check error in example set_option
1302
1303--------------------------------------------------------------------------------
1304
1305Version 176:
1306
1307* Tidy up Quick Reference
1308* Fix array end calculation in utf8 assertion
1309* WebSocket masks use secure PRNG by default
1310
1311--------------------------------------------------------------------------------
1312
1313Version 175:
1314
1315* Fix initialization warning
1316
1317--------------------------------------------------------------------------------
1318
1319Version 174:
1320
1321* Fix Fields, FieldsWriter concept docs
1322* Fix BodyReader constructor requirements doc
1323
1324--------------------------------------------------------------------------------
1325
1326Version 173:
1327
1328* Remove Autobahn testsuite doc note
1329* Fix buffers_adapter iterator value type
1330* Fix buffers_adapter max_size
1331* Fix buffers_prefix iterator decrement
1332* buffers_adapter improvements
1333* Add icy_stream Shoutcast stream filter
1334
1335--------------------------------------------------------------------------------
1336
1337Version 172:
1338
1339* Tidy up websocket stream javadocs
1340* Fix move-only arguments in bind_handler
1341* Fix http::parser constructor javadoc
1342* Tidy up test::stream javadocs
1343* Tidy up composed operation doc
1344
1345--------------------------------------------------------------------------------
1346
1347Version 171:
1348
1349* Add handler_ptr::has_value
1350* Remove spurious assert
1351* Fix unused variable warning
1352
1353--------------------------------------------------------------------------------
1354
1355Version 170:
1356
1357* Add flat_stream to experimental
1358* Add ssl_stream to experimental
1359* Add test::error to experimental
1360* Add test::fail_count to experimental
1361* Add test::stream to experimental
1362* Use a shared string for example HTTP server doc roots
1363* Remove deprecated serializer::reader_impl()
1364* Remove deprecated Body reader and writer ctor signatures
1365* Add is_mutable_body_writer metafunction
1366* Add const and non-const overloads for message based http writes
1367* Use the root certificate which matches the fingerprint
1368
1369--------------------------------------------------------------------------------
1370
1371Version 169:
1372
1373* Use buffers_to_string in tests
1374* Use boost::void_t
1375* Refactor HTTP write_op implementation
1376* Use fully qualified namespace in BOOST_BEAST_HANDLER_INIT
1377* New flat_stream example class
1378* Use flat_stream in ssl_stream example code
1379
1380--------------------------------------------------------------------------------
1381
1382Version 168:
1383
1384* Use executor_work_guard in composed operations
1385* Revert verb.ipp change which caused spurious warnings
1386* Fix race in advanced server examples
1387
1388--------------------------------------------------------------------------------
1389
1390Version 167:
1391
1392* Revert: Tidy up calls to post()
1393
1394--------------------------------------------------------------------------------
1395
1396Version 166:
1397
1398* Use boost::is_convertible as a workaround
1399
1400--------------------------------------------------------------------------------
1401
1402Version 165:
1403
1404* Fix BOOST_NO_CXX11_ALLOCATOR check
1405
1406--------------------------------------------------------------------------------
1407
1408Version 164:
1409
1410* Fix masking on continuation frames
1411* Add Access-Control-Expose-Headers field constant
1412
1413--------------------------------------------------------------------------------
1414
1415Version 163:
1416
1417* Tidy up calls to post()
1418* Fix narrowing warnings
1419
1420--------------------------------------------------------------------------------
1421
1422Version 162:
1423
1424* Add asio_handler_invoke overloads for stream algorithms
1425* Improve websocket::stream::control_callback javadoc
1426
1427--------------------------------------------------------------------------------
1428
1429Version 161:
1430
1431* Don't copy the handler in write_some_op
1432* Add move-only handler tests
1433* Fix handler parameter javadocs
1434
1435--------------------------------------------------------------------------------
1436
1437Version 160:
1438
1439* Examples clear the HTTP message before reading
1440
1441--------------------------------------------------------------------------------
1442
1443Version 159:
1444
1445* Fix typo in release notes
1446* Safe treatment of zero-length string arguments in basic_fields
1447* Some basic_fields operations now give the strong exception guarantee
1448
1449--------------------------------------------------------------------------------
1450
1451Version 158:
1452
1453* Tidy up end_of_stream javadoc
1454* Tidy up websocket docs
1455* Examples set reuse_address(true)
1456* Advanced servers support clean shutdown via SIGINT or SIGTERM
1457* DynamicBuffer input areas are not mutable
1458* Tidy up some documentation
1459
1460API Changes:
1461
1462* get_lowest_layer is a type alias
1463
1464Actions required:
1465
1466* Replace instances of `typename get_lowest_layer<T>::type`
1467  with `get_lowest_layer<T>`.
1468
1469--------------------------------------------------------------------------------
1470
1471Version 157:
1472
1473* Fix teardown for TIME_WAIT
1474* Fix big-endian websocket masking
1475
1476--------------------------------------------------------------------------------
1477
1478Version 156:
1479
1480* Don't use typeid
1481* Add release notes to documentation
1482* Fix stale link for void-or-deduced
1483
1484--------------------------------------------------------------------------------
1485
1486Version 155:
1487
1488* Fix memory leak in advanced server examples
1489* Fix soft-mutex assert in websocket stream
1490* Fix fallthrough warnings
1491* Tidy up bind_handler doc
1492
1493--------------------------------------------------------------------------------
1494
1495Version 154:
1496
1497* Type check completion handlers
1498* bind_handler doc update
1499* bind_handler works with boost placeholders
1500
1501--------------------------------------------------------------------------------
1502
1503Version 153:
1504
1505* Remove BOOST_VERSION checks
1506* Use make_error_code for setting an error_code from errc
1507* Use boost::winapi::GetLastError() consistently
1508* Update README.md for branches
1509* Avoid string_view::clear
1510* Fix iterator version of basic_fields::erase
1511* Fix use-after-move in example request handlers
1512* Add Bishop Fox interview media
1513
1514--------------------------------------------------------------------------------
1515
1516Version 152:
1517
1518* Refactor detect_ssl_op
1519* Disable gdb on Travis for Meltdown
1520
1521WebSocket:
1522
1523* Redistribute the read tests in the translation units
1524* Refactor error headers
1525* Add WebSocket error conditions
1526
1527API Changes:
1528
1529* Refactor WebSocket errors (API Change):
1530
1531Actions Required:
1532
1533* Code which explicitly compares error_code values against the
1534  constant `websocket::error::handshake_failed` should compare
1535  against `websocket::condition::handshake_failed` instead.
1536
1537* Code which explicitly compares error_code values against the
1538  constant `websocket::error::failed` should compare
1539  against `websocket::condition::protocol_violation` instead.
1540
1541--------------------------------------------------------------------------------
1542
1543Version 151:
1544
1545* Sanitizer failures are errors
1546* Depend on container_hash
1547* Fix high-ASCII in source file
1548
1549WebSocket:
1550
1551* Control callback is invoked on the execution context
1552* Add stream_fwd.hpp
1553* Remove unnecessary include
1554
1555API Changes:
1556
1557* http::parser is not MoveConstructible
1558* permessage-deflate is a compile-time feature
1559
1560--------------------------------------------------------------------------------
1561
1562Version 150:
1563
1564* handler_ptr tests
1565* Documentation
1566
1567API Changes:
1568
1569* serializer::reader_impl is deprecated
1570
1571Actions Required:
1572
1573* Call serializer::writer_impl instead of reader_impl
1574
1575--------------------------------------------------------------------------------
1576
1577Version 149:
1578
1579* built-in r-value return values can't be assigned
1580* Tidy up ssl_stream special members
1581* Fix CMakeLists.txt variable
1582* Protect calls from macros
1583* pausation always allocates
1584* Don't copy completion handlers
1585* handler_ptr is move-only
1586* Fix Travis memory utilization
1587
1588API Changes:
1589
1590* handler_ptr gives the strong exception guarantee
1591
1592Actions Required:
1593
1594* Change the constructor signature for state objects
1595  used with handler_ptr to receive a const reference to
1596  the handler.
1597
1598--------------------------------------------------------------------------------
1599
1600Version 148:
1601
1602* Install codecov on codecov CI targets only
1603* Update reports for hybrid assessment
1604* Handle invalid deflate frames
1605
1606--------------------------------------------------------------------------------
1607
1608Version 147:
1609
1610* Don't use boost::string_ref
1611* Use iterator wrapper in detail::buffers_range
1612
1613HTTP:
1614
1615* Tidy up basic_fields exception specifiers
1616
1617WebSocket:
1618
1619* control callback is copied or moved
1620* Send idle pings in advanced servers
1621
1622--------------------------------------------------------------------------------
1623
1624Version 146:
1625
1626* Fix some typos
1627* Faster ascii_tolower
1628* Documentation tidying
1629* Fix typo in examples documentation
1630* Add detail::aligned_union and tidy up
1631* Use variant in buffers_cat_view
1632
1633API Changes:
1634
1635* Remove unintended public members of handler_ptr
1636
1637--------------------------------------------------------------------------------
1638
1639Version 145:
1640
1641* Rename some detail functions
1642* Refactor basic_fields allocator internals
1643* Refactor HTTP async read composed operations
1644* null_buffers is deprecated
1645* Version 124 works with Boost 1.65.1 and earlier
1646* basic_fields does not support fancy pointers
1647
1648--------------------------------------------------------------------------------
1649
1650Version 144-hf1:
1651
1652* Update reports for hybrid assessment
1653* Handle invalid deflate frames
1654* Install codecov on codecov CI targets only
1655
1656--------------------------------------------------------------------------------
1657
1658Version 144:
1659
1660* Fix websocket permessage-deflate negotiation
1661
1662--------------------------------------------------------------------------------
1663
1664Version 143:
1665
1666* Fix autobahn report link
1667
1668--------------------------------------------------------------------------------
1669
1670Version 142:
1671
1672* Warn about upcoming API changes to certain concepts
1673* Fix name typo in http write test
1674
1675--------------------------------------------------------------------------------
1676
1677Version 141:
1678
1679* Tidy up some documentation
1680
1681--------------------------------------------------------------------------------
1682
1683Version 140:
1684
1685* Fix some integer warnings in 64-bit builds
1686* Fix utf8_checker test failures
1687* Fix signature for async_read_some, and tests
1688* Tidy up basic_parser
1689* Some basic_fields special members are protected
1690
1691--------------------------------------------------------------------------------
1692
1693Version 139:
1694
1695* Revisit boost library min/max guidance
1696
1697--------------------------------------------------------------------------------
1698
1699Version 138:
1700
1701* Tidy up some documentation
1702
1703--------------------------------------------------------------------------------
1704
1705Version 137:
1706
1707* ConstBufferSequence mandates pointer equivalence
1708* Add FieldsWriter constructor requirement
1709* Tidy up some documented constructor syntax
1710
1711--------------------------------------------------------------------------------
1712
1713Version 136:
1714
1715* Tidy up message doc image
1716
1717--------------------------------------------------------------------------------
1718
1719Version 135:
1720
1721* Fix typo in example server help text
1722
1723--------------------------------------------------------------------------------
1724
1725Version 134:
1726
1727* Add static_buffer_base default constructor definition
1728
1729--------------------------------------------------------------------------------
1730
1731Version 133:
1732
1733* Remove const&& overload of message::body
1734
1735--------------------------------------------------------------------------------
1736
1737Version 132:
1738
1739* Tidy up project folders in CMakeLists.txt
1740* Rename Cmake variables for clarity
1741* Add ref-qualified overloads for message::body
1742* Tidy up FieldsReader doc
1743
1744API Changes:
1745
1746* Fields::writer replaces Fields::reader
1747* BodyReader and BodyWriter names are swapped
1748
1749Actions Required:
1750
1751* Rename reader to writer for user defined Fields
1752* Swap the reader and writer names for user defined Body types
1753* Swap use of is_body_reader and is_body_writer
1754
1755--------------------------------------------------------------------------------
1756
1757Version 131:
1758
1759* basic_fields returns const values
1760* Set SNI hostname in example SSL clients
1761
1762--------------------------------------------------------------------------------
1763
1764Version 130:
1765
1766* Tidy up fallthrough warning
1767* Remove cxx11_sfinae_expr build requirement from tests
1768
1769--------------------------------------------------------------------------------
1770
1771Version 129:
1772
1773* Add autobahn test report to doc
1774* Documentation tidying
1775* Fix prepare_payload: chunked is HTTP/1.1
1776
1777--------------------------------------------------------------------------------
1778
1779Version 128:
1780
1781* Update doc links
1782* Add explicit-failures-markup.xml
1783
1784HTTP:
1785
1786* Add message::need_eof
1787* Use message::need_eof in example servers
1788* Use synchronous writes in chunk output example
1789
1790WebSocket:
1791
1792* Fix utf8 validation for autobahn
1793* Temporarily disable utf8 validation tests
1794* Tidy up fast websocket server host names
1795
1796API Changes:
1797
1798* Remove serializer::keep_alive
1799* Remove serializer::chunked
1800* Add has_content_length_impl to Fields
1801* Add message::has_content_length
1802* Rename some basic_parser observers
1803
1804Actions Required:
1805
1806* Call message::keep_alive instead of serializer::keep_alive
1807* Call serializer::get::chunked instead of serializer::chunked
1808* Implement has_content_length_impl for user-defined Fields
1809* Remove the "is_" prefix from call sites invoking certain basic_parser members
1810
1811--------------------------------------------------------------------------------
1812
1813Version 127:
1814
1815* Add BOOST_BEAST_NO_POSIX_FADVISE
1816* Version command line option for HTTP client examples
1817* More Jamfile compiler requirements for tests
1818
1819--------------------------------------------------------------------------------
1820
1821Version 126:
1822
1823* Add CppCon2017 presentation link
1824* Update README.md
1825* Update stream write documentation for end of stream changes
1826* Tidy up unused variable warnings
1827* Don't return end_of_stream on win32 file body writes
1828* Fix doc typo
1829* Fix shadowing in session_alloc
1830* Fix executor type compilation
1831* Add Travis tests with the default compilers
1832* Update Boost.WinAPI usage to the new location and namespace.
1833* Fix buffered_read_stream async_read_some signature
1834
1835--------------------------------------------------------------------------------
1836
1837Version 125:
1838
1839API Changes:
1840
1841* Update for Net-TS Asio
1842
1843Actions Required:
1844
1845* Use BOOST_ASIO_HANDLER_TYPE instead of handler_type
1846* Use BOOST_ASIO_INITFN_RESULT_TYPE instead of async_result
1847* Use boost::asio::async_completion
1848* Use boost::asio::is_dynamic_buffer
1849* Use boost::asio::is_const_buffer_sequence
1850* Use boost::asio::is_mutable_buffer_sequence
1851* boost::asio::associated_allocator_t replaces handler_alloc
1852
1853--------------------------------------------------------------------------------
1854
1855Version 124:
1856
1857* Fix for a test matrix compiler
1858* Fix basic_fields javadoc
1859
1860API Changes:
1861
1862* http write returns success on connection close
1863
1864Actions Required:
1865
1866* Add code to servers to close the connection after successfully
1867  writing a message where `message::keep_alive()` would return `false`.
1868
1869--------------------------------------------------------------------------------
1870
1871Version 123:
1872
1873* Use unit-test subtree
1874* Fix spurious race in websocket close test
1875* Check compiler feature in Jamfile
1876* Clear previous message fields in parser
1877
1878--------------------------------------------------------------------------------
1879
1880Version 122:
1881
1882* Add test for issue 807
1883* assert on empty buffer in websocket read
1884* Fix zlib symbol conflicts
1885* CMake 3.5.1 is required
1886* config.hpp is not a public header
1887* Add missing case in error test
1888
1889--------------------------------------------------------------------------------
1890
1891Version 121:
1892
1893* Add test for issue 802
1894* Fix enum and non-enum in conditional exp. warning
1895
1896--------------------------------------------------------------------------------
1897
1898Version 120:
1899
1900* Fix spurious strand_ in advanced_server_flex
1901* OpenSSL targets are optional (CMake)
1902
1903--------------------------------------------------------------------------------
1904
1905Version 119:
1906
1907* Tidy up doc badge links
1908
1909--------------------------------------------------------------------------------
1910
1911Version 118:
1912
1913* file_win32 opens for read-only in shared mode
1914* Remove unused strands in server examples
1915* Update build instructions
1916* Doc root is at index.html
1917
1918HTTP:
1919
1920* Fix writing header into std::ostream
1921
1922--------------------------------------------------------------------------------
1923
1924Version 117:
1925
1926* Add buffers_to_string
1927
1928API Changes:
1929
1930* buffers_suffix replaces consuming_buffers
1931* buffers_prefix replaces buffer_prefix
1932* buffers_prefix_view replaces buffer_prefix_view
1933* buffers_front replaces buffer_front
1934* buffers_cat replaces buffer_cat
1935* buffers_cat_view replaces buffer_cat_view
1936* Remove buffers_suffix::get
1937
1938Actions Required:
1939
1940* Use buffers_suffix instead of consuming_buffers
1941* Use buffers_prefix instead of buffer_prefix
1942* Use buffers_prefix_view instead of buffer_prefix_view
1943* Use buffers_front instead of buffer_front
1944* Use buffers_cat instead of buffer_cat
1945* Use buffers_cat_view instead of buffer_cat_view
1946* Avoid calling buffers_suffix::get
1947
1948--------------------------------------------------------------------------------
1949
1950Version 116:
1951
1952API Changes:
1953
1954* message::body is a member function
1955* message::version is a member function
1956
1957Actions Required:
1958
1959* Call member function message::body instead of accessing
1960  the data member at call sites.
1961
1962* Call member function message::version instead of accessing
1963  the version member at call sites.
1964
1965--------------------------------------------------------------------------------
1966
1967Version 115:
1968
1969* Update README.md master doc link
1970
1971--------------------------------------------------------------------------------
1972
1973Version 114:
1974
1975(No changes)
1976
1977--------------------------------------------------------------------------------
1978
1979Version 113:
1980
1981* Fix handler signature in async_read_header
1982* Remove field_range copy constructor
1983
1984--------------------------------------------------------------------------------
1985
1986Version 112:
1987
1988* Update websocket notes
1989
1990API Changes:
1991
1992* WebSocket writes return the bytes transferred
1993
1994* HTTP reads and writes return bytes transferred
1995
1996Actions Required:
1997
1998* Modify websocket write completion handlers to receive
1999  the extra std::size_t bytes_transferred parameter.
2000
2001* Modify HTTP read and/or write completion handlers to
2002  receive the extra std::size_t bytes_transferred parameter.
2003
2004--------------------------------------------------------------------------------
2005
2006Version 111:
2007
2008WebSocket:
2009
2010* Fix utf8 check split code point at buffer end
2011* Refactor stream operations and tests plus coverage
2012* Suspended ops special members
2013
2014--------------------------------------------------------------------------------
2015
2016Version 110:
2017
2018* Refactor stream open state variable
2019* Refactor websocket stream members
2020* Refactor websocket stream: fixes and tests
2021* Add test::stream::lowest_layer
2022* Fix invalid iterator in test reporter
2023
2024--------------------------------------------------------------------------------
2025
2026Version 109:
2027
2028* refactor test::stream
2029
2030WebSocket:
2031
2032* Fix async_read_some handler signature
2033* websocket close fixes and tests
2034* websocket handshake uses coroutine
2035* websocket ping tests
2036* Fix websocket close_op resume state
2037* websocket write tests
2038* split up websocket tests
2039* websocket read tests
2040
2041API Changes:
2042
2043* websocket accept refactoring
2044
2045Actions Required:
2046
2047* Do not call websocket accept overloads which take
2048  both a message and a buffer sequence, as it is
2049  illegal per rfc6455.
2050
2051--------------------------------------------------------------------------------
2052
2053Version 108:
2054
2055* Fix argument parsing in HTTP examples
2056* Don't use async_write_msg in examples
2057
2058--------------------------------------------------------------------------------
2059
2060Version 107:
2061
2062* Use test::stream
2063
2064WebSocket
2065
2066* Fix done state for WebSocket reads
2067* Fix utf8 check for compressed frames
2068* Rename frame and header buffer types
2069
2070--------------------------------------------------------------------------------
2071
2072Version 106:
2073
2074* Dynamic buffer input areas are mutable
2075* Add flat_static_buffer::reset
2076
2077HTTP:
2078
2079* Fix for basic_parser::skip(true) and docs
2080
2081WebSocket:
2082
2083* websocket test improvements
2084* Remove obsolete write_op
2085* Refactor write_op
2086* Refactor ping_op
2087* Refactor fail_op
2088* Refactor read_op
2089* Refactor close_op
2090* Refactor read_op + fail_op
2091* Websocket close will automatically drain
2092* Autobahn|Testsuite fixes
2093* Tidy up utf8_checker and tests
2094
2095--------------------------------------------------------------------------------
2096
2097Version 105:
2098
2099* Fix compile error in websocket snippet
2100* Tidy up Jamfile and tests
2101
2102--------------------------------------------------------------------------------
2103
2104Version 104:
2105
2106* Remove unused include
2107* Use #error in config.hpp
2108* Only set -std=c++11 on Travis
2109* Only set /permissive- on Appveyor
2110* Tidy up some test warnings
2111* tools/ renamed from build/
2112
2113WebSocket:
2114
2115* Fix pausation::save
2116
2117--------------------------------------------------------------------------------
2118
2119Version 103:
2120
2121* Boost test matrix fixes
2122* Tidy up allocator usage
2123* Example HTTP server fixes
2124
2125--------------------------------------------------------------------------------
2126
2127Version 102:
2128
2129* Section headings in examples
2130
2131--------------------------------------------------------------------------------
2132
2133Version 101:
2134
2135* Refactor all examples
2136
2137--------------------------------------------------------------------------------
2138
2139Version 100:
2140
2141* Fix doc convenience includes
2142* Fix doc includes
2143* Remove unused test header
2144* Rename test macros
2145* Reorder define test macro params
2146* vcxproj workaround for include symlinks
2147* Add variadic min/max
2148
2149WebSocket:
2150
2151* Remove obsolete frame tests
2152* Refactor fail/clode code
2153* Call do_fail from read_some
2154* eof on accept returns error::closed
2155* Fix stream::read_size_hint calculation
2156* Documentation
2157
2158API Changes:
2159
2160* Calls to stream::close and stream::async_close will
2161  automatically perform the required read operations
2162
2163* drain_buffer is removed
2164
2165* role_type replaces teardown_tag
2166
2167Actions Required:
2168
2169* Remove calling code which drains the connection after
2170  calling stream::close or stream::async_close
2171
2172* Replace code which uses drain_buffer. For websocket::stream,
2173  it is no longer necessary to manually drain the connection
2174  after closing.
2175
2176* Modify signatures of teardown and async_teardown to use
2177  role_type instead of teardown_tag
2178
2179* Change calls to teardown and async_teardown to pass the
2180  correct role_type, client or server, depending on context.
2181
2182--------------------------------------------------------------------------------
2183
2184Version 99:
2185
2186* Log the value of LIB_DIR for doc builds (debug)
2187* Use correct handler signature in fail_op
2188* Fix doc typo
2189
2190--------------------------------------------------------------------------------
2191
2192Version 98:
2193
2194* basic_fields::key_compare is noexcept
2195* Fix bench-zlib cmake
2196* Use unique names Jam projects
2197* Trim utf8 checker test
2198
2199--------------------------------------------------------------------------------
2200
2201Version 97:
2202
2203* Update redirect
2204
2205--------------------------------------------------------------------------------
2206
2207Version 96:
2208
2209* Move bench/ to test/
2210* Move extras/ to test/
2211* Use <valgrind> property
2212* Rename wsload compile target
2213* Fix library.json
2214* Update boostorg links
2215* Add bench-zlib
2216* Faster zlib tests
2217* Less compression on websocket test
2218
2219--------------------------------------------------------------------------------
2220
2221Version 95:
2222
2223* Tidy up Travis build scripts
2224* Move scripts to build/
2225* Fix race in test::pipe
2226* close on test::pipe teardown
2227* Add test::stream
2228* Tidy up static_buffer braced init
2229* Fix html redirect
2230* Add valgrind variant, fix false positives
2231
2232--------------------------------------------------------------------------------
2233
2234Version 94:
2235
2236* Use off-site Quick Start link temporarily
2237
2238--------------------------------------------------------------------------------
2239
2240Version 93:
2241
2242* Unset BOOST_COROUTINES_NO_DEPRECATION_WARNING
2243
2244--------------------------------------------------------------------------------
2245
2246Version 92:
2247
2248* Fix typo in test/CMakeLists.txt
2249* basic_fields::value_type is not copyable
2250* Update repository links in source comments
2251* Ignore Content-Length in some cases
2252* Tidy up doc snippet paths
2253* Use off-site doc link
2254
2255--------------------------------------------------------------------------------
2256
2257Version 91:
2258
2259* Adjust redirect html
2260* Don't build pre-C++11
2261* source.dox is path-independent
2262* Tidy up namespace qualifiers
2263* Tidy up MSVC CMakeLists.txt
2264* Optimize buffered_read_stream
2265* constexpr in derived buffers
2266* Set BOOST_ASIO_NO_DEPRECATED
2267* Use Asio array optimization in static_buffer_base
2268* Rename wstest source file
2269* Use fopen_s on Windows
2270* Fix Appveyor script
2271* Update project metadata
2272* Move benchmarks to bench/
2273* Fix doc title
2274* Build stand-alone doc
2275* Update doc copyrights
2276* Refactor test build scripts
2277
2278WebSocket:
2279
2280* Tidy up websocket javadocs
2281* Refactor accept, handshake ops
2282* Use read buffer instead of buffered stream
2283
2284API Changes
2285
2286* control frame callbacks are non-const references
2287
2288Actions Required:
2289
2290* Modify calls to set the control frame callback, to
2291  pass non-const reference instances, and manage the
2292  lifetime of the instance.
2293
2294--------------------------------------------------------------------------------
2295
2296Version 90:
2297
2298* Fix websocket read of zero length message
2299* Fix typo in equal_range
2300* Output to integrated documentation
2301
2302--------------------------------------------------------------------------------
2303
2304Version 89:
2305
2306* Fix CONTRIBUTING.md links
2307
2308--------------------------------------------------------------------------------
2309
2310Version 88:
2311
2312* Update doc links in README.md
2313* Refactor tests Jamfile
2314* Don't use program_options
2315
2316WebSocket:
2317
2318* Fix uninitialized frame done
2319
2320--------------------------------------------------------------------------------
2321
2322Version 87:
2323
2324* Update appveyor for Boost branch
2325* Rename to BEAST_EXPECT
2326* variant fixes and tests
2327* Update README, add CONTRIBUTING.md and CODE_OF_CONDUCT.md
2328
2329--------------------------------------------------------------------------------
2330
2331Version 86:
2332
2333* Boost prep
2334* Remove use of lexical_cast
2335* Use custom variant
2336* Update README.md
2337* Add local-travis.sh
2338* Use winapi
2339* Update CMakeLists.txt for boost
2340* Update documentation for boost
2341* Update copyrights
2342* Remove spurious declaration
2343* Tidy up Jamfile
2344* Normalize doc build scripts
2345* Use configured doxygen and xsltproc
2346* Fix Deferred Body Type Example Documentation
2347* Add library metadata
2348
2349API Changes:
2350
2351* websocket read returns the number of bytes inserted
2352
2353Actions Required:
2354
2355* Change the signature of completion handlers used with
2356  websocket::stream::async_read to void(error_code, std::size_t)
2357
2358--------------------------------------------------------------------------------
2359
2360Version 85:
2361
2362* Fix test failure
2363* Tidy up test warning
2364
2365--------------------------------------------------------------------------------
2366
2367Version 84:
2368
2369* Tidy up buffer_front
2370* static_buffer::consume improvement
2371* multi_buffer is type-check friendly
2372* bind_handler allows placeholders
2373* Add consuming_buffers::get
2374
2375WebSocket:
2376
2377* WebSocket read optimization
2378
2379API Changes:
2380
2381* websocket::stream::read_buffer_size is removed
2382
2383Actions Required:
2384
2385* Remove calls websocket::stream::read_buffer_size
2386* Use read_some and write_some instead of read_frame and write_frame
2387
2388--------------------------------------------------------------------------------
2389
2390Version 83:
2391
2392* Add flat_static_buffer::mutable_data
2393* Add buffer_front
2394* Add wstest compression option
2395* Turn some flat_static_buffer_tests on
2396* Documentation work
2397* read_some, async_read_some return bytes used
2398* Fix private timer::clock_type
2399
2400WebSocket
2401
2402* Add wstest compression option
2403* Fix buffer lifetime in websocket write
2404
2405API Changes:
2406
2407* Add static_buffer
2408
2409Actions Required:
2410
2411* Callers who depend on static_buffer returning sequences of
2412  exactly length one should switch to flat_static_buffer.
2413
2414--------------------------------------------------------------------------------
2415
2416Version 82:
2417
2418* Documentation tidying
2419* is_invocable works with move-only types
2420* Use std::function and reference wrapper
2421* Add session_alloc to example/common
2422* Silence spurious warning
2423
2424HTTP
2425
2426* Fix extraneous argument in async_write_header
2427
2428WebSocket
2429
2430* stream tidying
2431* Add rd_close_ to websocket stream state
2432* stream uses flat_buffer
2433* accept requires a message
2434* Add wstest benchmark tool
2435
2436API Changes:
2437
2438* Rename to flat_static_buffer and flat_static_buffer_base
2439
2440Actions Required:
2441
2442* Rename static_buffer to flat_static_buffer_base
2443* Rename static_buffer_n to flat_static_buffer
2444
2445--------------------------------------------------------------------------------
2446
2447Version 81:
2448
2449* Pass string_view by value
2450* better is_final on empty_base_optimization
2451* Suppress incorrect GCC warning
2452* multi_buffer ctor is explicit
2453* File is not copy-constructible
2454
2455API Changes:
2456
2457* Refactor basic_parser, chunk parsing:
2458
2459Actions Required:
2460
2461* Adjust signatures for required members of user-defined
2462  subclasses of basic_parser
2463
2464* Use the new basic_parser chunk callbacks for accessing
2465  chunk extensions and chunk bodies.
2466
2467--------------------------------------------------------------------------------
2468
2469Version 80:
2470
2471* Javadoc tidying
2472* Add basic_dynamic_body.hpp
2473* Shrink buffer_prefix_view
2474* Remove unused file_path
2475* Add basic_file_body.hpp
2476* buffers_ref is Assignable
2477
2478HTTP
2479
2480* Shrink chunk header buffer sequence size
2481
2482API Changes:
2483
2484* Refactor chunked-encoding serialization
2485
2486Actions Required:
2487
2488* Remove references to ChunkDecorators. Use the new chunk-encoding
2489  buffer sequences to manually produce a chunked payload body in
2490  the case where control over the chunk-extensions and/or trailers
2491  is required.
2492
2493--------------------------------------------------------------------------------
2494
2495Version 79:
2496
2497* Remove spurious fallthrough guidance
2498
2499--------------------------------------------------------------------------------
2500
2501Version 78:
2502
2503* Add span
2504* Documentation work
2505* Use make_unique_noinit
2506* Fix warning in zlib
2507* Header file tidying
2508* Tidy up FieldsReader doc
2509* Add Boost.Locale utf8 benchmark comparison
2510* Tidy up dstream for existing Boost versions
2511* Tidy up file_posix unused variable
2512* Fix warning in root ca declaration
2513
2514HTTP:
2515
2516* Tidy up basic_string_body
2517* Add vector_body
2518* span, string, vector bodies are public
2519* Fix spurious uninitialized warning
2520* fields temp string uses allocator
2521
2522API Changes:
2523
2524* Add message::keep_alive()
2525* Add message::chunked() and message::content_length()
2526* Remove string_view_body
2527
2528Actions Required:
2529
2530* Change user defined implementations of Fields and
2531  FieldsReader to meet the new requirements.
2532
2533* Use span_body<char> instead of string_view_body
2534
2535--------------------------------------------------------------------------------
2536
2537Version 77:
2538
2539* file_posix works without large file support
2540
2541--------------------------------------------------------------------------------
2542
2543Version 76:
2544
2545* Always go through write_some
2546* Use Boost.Config
2547* BodyReader may construct from a non-const message
2548* Add serializer::get
2549* Add serializer::chunked
2550* Serializer members are not const
2551* serializing file_body is not const
2552* Add file_body_win32
2553* Fix parse illegal characters in obs-fold
2554* Disable SSE4.2 optimizations
2555
2556API Changes:
2557
2558* Rename to serializer::keep_alive
2559* BodyReader, BodyWriter use two-phase init
2560
2561Actions Required:
2562
2563* Use serializer::keep_alive instead of serializer::close and
2564  take the logical NOT of the return value.
2565
2566* Modify instances of user-defined BodyReader and BodyWriter
2567  types to perform two-phase initialization, as per the
2568  updated documented type requirements.
2569
2570--------------------------------------------------------------------------------
2571
2572Version 75:
2573
2574* Use file_body for valid requests, string_body otherwise.
2575* Construct buffer_prefix_view in-place
2576* Shrink serializer buffers using buffers_ref
2577* Tidy up BEAST_NO_BIG_VARIANTS
2578* Shrink serializer buffers using buffers_ref
2579* Add serializer::limit
2580* file_body tests
2581* Using SSE4.2 intrinsics in basic_parser if available
2582
2583--------------------------------------------------------------------------------
2584
2585Version 74:
2586
2587* Add file_stdio and File concept
2588* Add file_win32
2589* Add file_body
2590* Remove common/file_body.hpp
2591* Add file_posix
2592* Fix Beast include directories for cmake targets
2593* remove redundant flush() from example
2594
2595--------------------------------------------------------------------------------
2596
2597Version 73:
2598
2599* Jamroot tweak
2600* Verify certificates in SSL clients
2601* Adjust benchmarks
2602* Initialize local variable in basic_parser
2603* Fixes for gcc-4.8
2604
2605HTTP:
2606
2607* basic_parser optimizations
2608* Add basic_parser tests
2609
2610API Changes:
2611
2612* Refactor header and message constructors
2613* serializer::next replaces serializer::get
2614
2615Actions Required:
2616
2617* Evaluate each message constructor call site and
2618  adjust the constructor argument list as needed.
2619
2620* Use serializer::next instead of serializer::get at call sites
2621
2622--------------------------------------------------------------------------------
2623
2624Version 72:
2625
2626HTTP:
2627
2628* Tidy up set payload in http-server-fast
2629* Refine Body::size specification
2630* Newly constructed responses have a 200 OK result
2631* Refactor file_body for best practices
2632* Add http-server-threaded example
2633* Documentation tidying
2634* Various improvements to http_server_fast.cpp
2635
2636WebSocket:
2637
2638* Add websocket-server-async example
2639
2640--------------------------------------------------------------------------------
2641
2642Version 71:
2643
2644* Fix extra ; warning
2645* Documentation revision
2646* Fix spurious on_chunk invocation
2647* Call prepare_payload in HTTP example
2648* Check trailers in test
2649* Fix buffer overflow handling for string_body and mutable_body
2650* Concept check in basic_dynamic_body
2651* Tidy up http_sync_port error check
2652* Tidy up Jamroot /permissive-
2653
2654WebSockets:
2655
2656* Fine tune websocket op asserts
2657* Refactor websocket composed ops
2658* Allow close, ping, and write to happen concurrently
2659* Fix race in websocket read op
2660* Fix websocket write op
2661* Add cmake options for examples and tests
2662
2663API Changes:
2664
2665* Return `std::size_t` from `Body::writer::put`
2666
2667Actions Required:
2668
2669* Return the number of bytes actually transferred from the
2670  input buffers in user defined `Body::writer::put` functions.
2671
2672--------------------------------------------------------------------------------
2673
2674Version 70:
2675
2676* Serialize in one step when possible
2677* Add basic_parser header and body limits
2678* Add parser::on_header to set a callback
2679* Fix BEAST_FALLTHROUGH
2680* Fix HEAD response in file_service
2681
2682API Changes:
2683
2684* Rename to message::base
2685* basic_parser default limits are now 1MB/8MB
2686
2687Actions Required:
2688
2689* Change calls to message::header_part() with message::base()
2690
2691* Call body_limit and/or header_limit as needed to adjust the
2692  limits to suitable values if the defaults are insufficient.
2693
2694--------------------------------------------------------------------------------
2695
2696Version 69:
2697
2698* basic_parser optimizations
2699* Use BEAST_FALLTHROUGH to silence warnings
2700* Add /permissive- to msvc toolchain
2701
2702--------------------------------------------------------------------------------
2703
2704Version 68:
2705
2706* Split common tests to a new project
2707* Small speed up in fields comparisons
2708* Adjust buffer size in fast server
2709* Use string_ref in older Boost versions
2710* Optimize field lookups
2711* Add const_body, mutable_body to examples
2712* Link statically on cmake MSVC
2713
2714API Changes:
2715
2716* Change BodyReader, BodyWriter requirements
2717* Remove BodyReader::is_deferred
2718* http::error::bad_target replaces bad_path
2719
2720Actions Required:
2721
2722* Change user defined instances of BodyReader and BodyWriter
2723  to meet the new requirements.
2724
2725* Replace references to http::error::bad_path with http::error::bad_target
2726
2727--------------------------------------------------------------------------------
2728
2729Version 67:
2730
2731* Fix doc example link
2732* Add http-server-small example
2733* Merge stream_base to stream and tidy
2734* Use boost::string_view
2735* Rename to http-server-fast
2736* Appveyor use Boost 1.64.0
2737* Group common example headers
2738
2739API Changes:
2740
2741* control_callback replaces ping_callback
2742
2743Actions Required:
2744
2745* Change calls to websocket::stream::ping_callback to use
2746  websocket::stream::control_callback
2747
2748* Change user defined ping callbacks to have the new
2749  signature and adjust the callback definition appropriately.
2750
2751--------------------------------------------------------------------------------
2752
2753Version 66:
2754
2755* string_param optimizations
2756* Add serializer request/response aliases
2757* Make consuming_buffers smaller
2758* Fix costly potential value-init in parser
2759* Fix unused parameter warning
2760* Handle bad_alloc in parser
2761* Tidy up message piecewise ctors
2762* Add header aliases
2763* basic_fields optimizations
2764* Add http-server example
2765* Squelch spurious warning on gcc
2766
2767--------------------------------------------------------------------------------
2768
2769Version 65:
2770
2771* Enable narrowing warning on msvc cmake
2772* Fix integer types in deflate_stream::bi_reverse
2773* Fix narrowing in static_ostream
2774* Fix narrowing in ostream
2775* Fix narrowing in inflate_stream
2776* Fix narrowing in deflate_stream
2777* Fix integer warnings
2778* Enable unused variable warning on msvc cmake
2779
2780--------------------------------------------------------------------------------
2781
2782Version 64:
2783
2784* Simplify buffered_read_stream composed op
2785* Simplify ssl teardown composed op
2786* Simplify websocket write_op
2787* Exemplars are compiled code
2788* Better User-Agent in examples
2789* async_write requires a non-const message
2790* Doc tidying
2791* Add link_directories to cmake
2792
2793API Changes:
2794
2795* Remove make_serializer
2796
2797Actions Required:
2798
2799* Replace calls to make_serializer with variable declarations
2800
2801--------------------------------------------------------------------------------
2802
2803Version 63:
2804
2805* Use std::to_string instead of lexical_cast
2806* Don't use cached Boost
2807* Put num_jobs back up on Travis
2808* Only build and run tests in variant=coverage
2809* Move benchmarks to a separate project
2810* Only run the tests under ubasan
2811* Tidy up CMakeLists.txt
2812* Tidy up Jamfiles
2813* Control running with valgrind explicitly
2814
2815--------------------------------------------------------------------------------
2816
2817Version 62:
2818
2819* Remove libssl-dev from a Travis matrix item
2820* Increase detail::static_ostream coverage
2821* Add server-framework tests
2822* Doc fixes and tidy
2823* Tidy up namespaces in examples
2824* Clear the error faster
2825* Avoid explicit operator bool for error
2826* Add http::is_fields trait
2827* Squelch harmless not_connected errors
2828* Put slow tests back for coverage builds
2829
2830API Changes:
2831
2832* parser requires basic_fields
2833* Refine FieldsReader concept
2834* message::prepare_payload replaces message::prepare
2835
2836Actions Required:
2837
2838* Callers using `parser` with Fields types other than basic_fields
2839  will need to create their own subclass of basic_parser to work
2840  with their custom fields type.
2841
2842* Implement chunked() and keep_alive() for user defined FieldsReader types.
2843
2844* Change calls to msg.prepare to msg.prepare_payload. For messages
2845  with a user-defined Fields, provide the function prepare_payload_impl
2846  in the fields type according to the Fields requirements.
2847
2848--------------------------------------------------------------------------------
2849
2850Version 61:
2851
2852* Remove Spirit dependency
2853* Use generic_cateogry for errno
2854* Reorganize SSL examples
2855* Tidy up some integer conversion warnings
2856* Add message::header_part()
2857* Tidy up names in error categories
2858* Flush the output stream in the example
2859* Clean close in Secure WebSocket client
2860* Add server-framework SSL HTTP and WebSocket ports
2861* Fix shadowing warnings
2862* Tidy up http-crawl example
2863* Add multi_port to server-framework
2864* Tidy up resolver calls
2865* Use one job on CI
2866* Don't run slow tests on certain targets
2867
2868API Changes:
2869
2870* header::version is unsigned
2871* status-codes is unsigned
2872
2873--------------------------------------------------------------------------------
2874
2875Version 60:
2876
2877* String comparisons are public interfaces
2878* Fix response message type in async websocket accept
2879* New server-framework, full featured server example
2880
2881--------------------------------------------------------------------------------
2882
2883Version 59:
2884
2885* Integrated Beast INTERFACE (cmake)
2886* Fix base64 alphabet
2887* Remove obsolete doc/README.md
2888
2889API Changes:
2890
2891* Change Body::size signature (API Change):
2892
2893Actions Required:
2894
2895* For any user-defined models of Body, change the function signature
2896  to accept `value_type const&` and modify the function definition
2897  accordingly.
2898
2899--------------------------------------------------------------------------------
2900
2901Version 58:
2902
2903* Fix unaligned reads in utf8-checker
2904* Qualify size_t in message template
2905* Reorganize examples
2906* Specification for http read
2907* Avoid `std::string` in websocket
2908* Fix basic_fields insert ordering
2909* basic_fields::set optimization
2910* basic_parser::put doc
2911* Use static string in basic_fields::reader
2912* Remove redundant code
2913* Fix parsing chunk size with leading zeroes
2914* Better message formal parameter names
2915
2916API Changes:
2917
2918* `basic_fields::set` renamed from `basic_fields::replace`
2919
2920Actions Required:
2921
2922* Rename calls to `basic_fields::replace` to `basic_fields::set`
2923
2924--------------------------------------------------------------------------------
2925
2926Version 57:
2927
2928* Fix message.hpp javadocs
2929* Fix warning in basic_parser.cpp
2930* Integrate docca for documentation and tidy
2931
2932--------------------------------------------------------------------------------
2933
2934Version 56:
2935
2936* Add provisional IANA header field names
2937* Add string_view_body
2938* Call on_chunk when the extension is empty
2939* HTTP/1.1 is the default version
2940* Try harder to find Boost (cmake)
2941* Reset error codes
2942* More basic_parser tests
2943* Add an INTERFACE cmake target
2944* Convert buffer in range loops
2945
2946--------------------------------------------------------------------------------
2947
2948Version 55:
2949
2950* Don't allocate memory to handle obs-fold
2951* Avoid a parser allocation using non-flat buffer
2952* read_size replaces read_size_helper
2953
2954--------------------------------------------------------------------------------
2955
2956Version 54:
2957
2958* static_buffer coverage
2959* flat_buffer coverage
2960* multi_buffer coverage
2961* consuming_buffers members and coverage
2962* basic_fields members and coverage
2963* Add string_param
2964* Retain ownership when reading using a message
2965* Fix incorrect use of [[fallthrough]]
2966
2967API Changes:
2968
2969* basic_fields refactor
2970
2971--------------------------------------------------------------------------------
2972
2973Version 53:
2974
2975* Fix basic_parser::maybe_flatten
2976* Fix read_size_helper usage
2977
2978--------------------------------------------------------------------------------
2979
2980Version 52:
2981
2982* flat_buffer is an AllocatorAwareContainer
2983* Add drain_buffer class
2984
2985API Changes:
2986
2987* `auto_fragment` is a member of `stream`
2988* `binary`, `text` are members of `stream`
2989* read_buffer_size is a member of `stream`
2990* read_message_max is a member of `stream`
2991* `write_buffer_size` is a member of `stream`
2992* `ping_callback` is a member of stream
2993* Remove `opcode` from `read`, `async_read`
2994* `read_frame` returns `bool` fin
2995* `opcode` is private
2996* finish(error_code&) is a BodyReader requirement
2997
2998Actions Required:
2999
3000* Change call sites which use `auto_fragment` with `set_option`
3001  to call `stream::auto_fragment` instead.
3002
3003* Change call sites which use message_type with `set_option`
3004  to call `stream::binary` or `stream::text` instead.
3005
3006* Change call sites which use `read_buffer_size` with `set_option` to
3007  call `stream::read_buffer_size` instead.
3008
3009* Change call sites which use `read_message_max` with `set_option` to
3010  call `stream::read_message_max` instead.
3011
3012* Change call sites which use `write_buffer_size` with `set_option` to
3013  call `stream::write_buffer_size` instead.
3014
3015* Change call sites which use `ping_callback1 with `set_option` to
3016  call `stream::ping_callback` instead.
3017
3018* Remove the `opcode` reference parameter from calls to synchronous
3019  and asynchronous read functions, replace the logic with calls to
3020  `stream::got_binary` and `stream::got_text` instead.
3021
3022* Remove the `frame_info` parameter from all read frame call sites
3023
3024* Check the return value 'fin' for calls to `read_frame`
3025
3026* Change ReadHandlers passed to `async_read_frame` to have
3027  the signature `void(error_code, bool fin)`, use the `bool`
3028  to indicate if the frame is the last frame.
3029
3030* Remove all occurrences of the `opcode` enum at call sites
3031
3032--------------------------------------------------------------------------------
3033
3034Version 51
3035
3036* Fix operator<< for header
3037* Tidy up file_body
3038* Fix file_body::get() not setting the more flag correctly
3039* Use BOOST_FALLTHROUGH
3040* Use BOOST_STRINGIZE
3041* DynamicBuffer benchmarks
3042* Add construct, destroy to handler_alloc
3043* Fix infinite loop in basic_parser
3044
3045API Changes:
3046
3047* Tune up static_buffer
3048* multi_buffer implementation change
3049
3050Actions Required:
3051
3052* Call sites passing a number to multi_buffer's constructor
3053  will need to be adjusted, see the corresponding commit message.
3054
3055--------------------------------------------------------------------------------
3056
3057Version 50
3058
3059* parser is constructible from other body types
3060* Add field enumeration
3061* Use allocator more in basic_fields
3062* Fix basic_fields allocator awareness
3063* Use field in basic_fields and call sites
3064* Use field in basic_parser
3065* Tidy up basic_fields, header, and field concepts
3066* Fields concept work
3067* Body documentation work
3068* Add missing handler_alloc nested types
3069* Fix chunk delimiter parsing
3070* Fix test::pipe read_size
3071* Fix chunk header parsing
3072
3073API Changes:
3074
3075* Remove header_parser
3076* Add verb to on_request for parsers
3077* Refactor prepare
3078* Protect basic_fields special members
3079* Remove message connection settings
3080* Remove message free functions
3081* Remove obsolete serializer allocator
3082* http read_some, async_read_some don't return bytes
3083
3084--------------------------------------------------------------------------------
3085
3086Version 49
3087
3088* Use <iosfwd> instead of <ostream>
3089
3090HTTP:
3091
3092* Add HEAD request example
3093
3094API Changes:
3095
3096* Refactor method and verb
3097* Canonicalize string_view parameter types
3098* Tidy up empty_body writer error
3099* Refactor header status, reason, and target
3100
3101--------------------------------------------------------------------------------
3102
3103Version 48
3104
3105* Make buffer_prefix_view public
3106* Remove detail::sync_ostream
3107* Tidy up core type traits
3108
3109API Changes:
3110
3111* Tidy up chunk decorator
3112* Rename to buffer_cat_view
3113* Consolidate parsers to parser.hpp
3114* Rename to parser
3115
3116--------------------------------------------------------------------------------
3117
3118Version 47
3119
3120* Disable operator<< for buffer_body
3121* buffer_size overload for basic_multi_buffer::const_buffers_type
3122* Fix undefined behavior in pausation
3123* Fix leak in basic_flat_buffer
3124
3125API Changes:
3126
3127* Refactor treatment of request-method
3128* Refactor treatment of status code and obsolete reason
3129* Refactor HTTP serialization and parsing
3130
3131--------------------------------------------------------------------------------
3132
3133Version 46
3134
3135* Add test::pipe
3136* Documentation work
3137
3138API Changes:
3139
3140* Remove HTTP header aliases
3141* Refactor HTTP serialization
3142* Refactor type traits
3143
3144--------------------------------------------------------------------------------
3145
3146Version 45
3147
3148* Workaround for boost::asio::basic_streambuf type check
3149* Fix message doc image
3150* Better test::enable_yield_to
3151* Fix header::reason
3152* Documentation work
3153* buffer_view skips empty buffer sequences
3154* Disable reverse_iterator buffer_view test
3155
3156--------------------------------------------------------------------------------
3157
3158Version 44
3159
3160* Use BOOST_THROW_EXCEPTION
3161* Tidy up read_size_helper and dynamic buffers
3162* Require Boost 1.58.0 or later
3163* Tidy up and make get_lowest_layer public
3164* Use BOOST_STATIC_ASSERT
3165* Fix async return values in docs
3166* Fix README websocket example
3167* Add buffers_adapter regression test
3168* Tidy up is_dynamic_buffer traits test
3169* Make buffers_adapter meet requirements
3170
3171--------------------------------------------------------------------------------
3172
3173Version 43
3174
3175* Require Boost 1.64.0
3176* Fix strict aliasing warnings in buffers_view
3177* Tidy up buffer_prefix overloads and test
3178* Add write limit to test::string_ostream
3179* Additional constructors for consuming_buffers
3180
3181--------------------------------------------------------------------------------
3182
3183Version 42
3184
3185* Fix javadoc typo
3186* Add formal review notes
3187* Make buffers_view a public interface
3188
3189--------------------------------------------------------------------------------
3190
3191Version 41
3192
3193* Trim Appveyor matrix rows
3194* Concept revision and documentation
3195* Remove coveralls integration
3196* Tidy up formal parameter names
3197
3198WebSocket
3199
3200* Tidy up websocket::close_code enum and constructors
3201
3202API Changes
3203
3204* Return http::error::end_of_stream on HTTP read eof
3205* Remove placeholders
3206* Rename prepare_buffer(s) to buffer_prefix
3207* Remove handler helpers, tidy up hook invocations
3208
3209--------------------------------------------------------------------------------
3210
3211Version 40
3212
3213* Add to_static_string
3214* Consolidate get_lowest_layer in type_traits.hpp
3215* Fix basic_streambuf movable trait
3216* Tidy up .travis.yml
3217
3218--------------------------------------------------------------------------------
3219
3220Version 39
3221
3222Beast versions are now identified by a single integer which
3223is incremented on each merge. The macro BEAST_VERSION
3224identifies the version number, currently at 39. A version
3225setting commit will always be at the tip of the master
3226and develop branches.
3227
3228* Use beast::string_view alias
3229* Fixed braced-init error with older gcc
3230
3231HTTP
3232
3233* Tidy up basic_parser javadocs
3234
3235WebSocket:
3236
3237* Add websocket async echo ssl server test:
3238* Fix eof error on ssl::stream shutdown
3239
3240API Changes:
3241
3242* Refactor http::header contents
3243* New ostream() returns dynamic buffer output stream
3244* New buffers() replaces to_string()
3245* Rename to multi_buffer, basic_multi_buffer
3246* Rename to flat_buffer, basic_flat_buffer
3247* Rename to static_buffer, static_buffer_n
3248* Rename to buffered_read_stream
3249* Harmonize concepts and identifiers with net-ts
3250* Tidy up HTTP reason_string
3251
3252--------------------------------------------------------------------------------
3253
32541.0.0-b38
3255
3256* Refactor static_string
3257* Refactor base64
3258* Use static_string for WebSocket handshakes
3259* Simplify get_lowest_layer test
3260* Add test_allocator to extras/test
3261* More flat_streambuf tests
3262* WebSocket doc work
3263* Prevent basic_fields operator[] assignment
3264
3265API Changes:
3266
3267* Refactor WebSocket error codes
3268* Remove websocket::keep_alive option
3269
3270--------------------------------------------------------------------------------
3271
32721.0.0-b37
3273
3274* CMake hide command lines in .vcxproj Output windows"
3275* Rename to detail::is_invocable
3276* Rename project to http-bench
3277* Fix flat_streambuf
3278* Add ub sanitizer blacklist
3279* Add -funsigned-char to asan build target
3280* Fix narrowing warning in table constants
3281
3282WebSocket:
3283
3284* Add is_upgrade() free function
3285* Document websocket::stream thread safety
3286* Rename to websocket::detail::pausation
3287
3288API Changes:
3289
3290* Provide websocket::stream accept() overloads
3291* Refactor websocket decorators
3292* Move everything in basic_fields.hpp to fields.hpp
3293* Rename to http::dynamic_body, consolidate header
3294
3295--------------------------------------------------------------------------------
3296
32971.0.0-b36
3298
3299* Update README.md
3300
3301--------------------------------------------------------------------------------
3302
33031.0.0-b35
3304
3305* Add Appveyor build scripts and badge
3306* Tidy up MSVC CMake configuration
3307* Make close_code a proper enum
3308* Add flat_streambuf
3309* Rename to BEAST_DOXYGEN
3310* Update .gitignore for VS2017
3311* Fix README.md CMake instructions
3312
3313API Changes:
3314
3315* New HTTP interfaces
3316* Remove http::empty_body
3317
3318--------------------------------------------------------------------------------
3319
33201.0.0-b34
3321
3322* Fix and tidy up CMake build scripts
3323
3324--------------------------------------------------------------------------------
3325
33261.0.0-b33
3327
3328* Require Visual Studio 2015 Update 3 or later
3329
3330HTTP
3331
3332* Use fwrite return value in file_body
3333
3334WebSocket
3335
3336* Set internal state correctly when writing frames
3337* Add decorator unit test
3338* Add write_frames unit test
3339
3340--------------------------------------------------------------------------------
3341
33421.0.0-b32
3343
3344* Add io_service completion invariants test
3345* Update CMake scripts for finding packages
3346
3347API Changes:
3348
3349* Remove http Writer suspend and resume feature
3350
3351--------------------------------------------------------------------------------
3352
33531.0.0-b31
3354
3355* Tidy up build settings
3356* Add missing dynabuf_readstream member
3357
3358WebSocket
3359
3360* Move the handler, don't copy it
3361
3362--------------------------------------------------------------------------------
3363
33641.0.0-b30
3365
3366WebSocket
3367
3368* Fix race in pings during reads
3369* Fix race in close frames during reads
3370* Fix race when write suspends
3371* Allow concurrent websocket async ping and writes
3372
3373--------------------------------------------------------------------------------
3374
33751.0.0-b29
3376
3377* Fix compilation error in non-template class
3378* Document type-pun in buffer_cat
3379* Correctly check ostream modifier (/extras)
3380
3381HTTP
3382
3383* Fix Body requirements doc
3384* Fix illegal HTTP characters accepted as hex zero
3385* Fix Writer return value documentation
3386
3387WebSocket
3388
3389* Fix race in writes during reads
3390* Fix doc link typo
3391
3392--------------------------------------------------------------------------------
3393
33941.0.0-b28
3395
3396* Split out and rename test stream classes
3397* Restyle async result constructions
3398* Fix HTTP split parse edge case
3399
3400--------------------------------------------------------------------------------
3401
34021.0.0-b27
3403
3404* Tidy up tests and docs
3405* Add documentation building instructions
3406
3407API Changes:
3408
3409* Invoke callback on pings and pongs
3410* Move basic_streambuf to streambuf.hpp
3411
3412--------------------------------------------------------------------------------
3413
34141.0.0-b26
3415
3416* Tidy up warnings and tests
3417
3418--------------------------------------------------------------------------------
3419
34201.0.0-b25
3421
3422* Fixes for WebSocket echo server
3423* Fix 32-bit arm7 warnings
3424* Remove unnecessary include
3425* WebSocket server examples and test tidying
3426* Fix deflate setup bug
3427
3428API Changes:
3429
3430* Better handler_ptr
3431
3432--------------------------------------------------------------------------------
3433
34341.0.0-b24
3435
3436* bjam use clang on MACOSX
3437* Simplify Travis package install specification
3438* Add optional yield_to arguments
3439* Make decorator copyable
3440* Add WebSocket permessage-deflate extension support
3441
3442--------------------------------------------------------------------------------
3443
34441.0.0-b23
3445
3446* Tune websocket echo server for performance
3447* Add file and line number to thrown exceptions
3448* Better logging in async echo server
3449* Add copy special members
3450* Fix message constructor and special members
3451* Travis CI improvements
3452
3453--------------------------------------------------------------------------------
3454
34551.0.0-b22
3456
3457* Fix broken Intellisense
3458* Implement the Asio deallocation-before-invocation guarantee
3459* Add handler helpers
3460* Avoid copies in handler_alloc
3461* Update README.md example programs
3462* Fix websocket stream read documentation
3463* Disable Boost.Coroutine deprecation warning
3464* Update documentation examples
3465
3466--------------------------------------------------------------------------------
3467
34681.0.0-b21
3469
3470* Remove extraneous includes
3471
3472--------------------------------------------------------------------------------
3473
34741.0.0-b20
3475
3476ZLib
3477
3478* Add ZLib module
3479
3480API Changes:
3481
3482* Rename HTTP identifiers
3483
3484--------------------------------------------------------------------------------
3485
34861.0.0-b19
3487
3488* Boost library min/max guidance
3489* Improvements to code coverage
3490* Use boost::lexical_cast instead of std::to_string
3491* Fix prepare_buffers value_type
3492* Fix consuming_buffers value_type
3493* Better buffer_cat
3494
3495HTTP
3496
3497* Make chunk_encode public
3498* Add write, async_write, operator<< for message_headers
3499* Add read, async_read for message_headers
3500* Fix with_body example
3501
3502WebSocket
3503
3504* Optimize utf8 validation
3505* Optimize mask operations
3506
3507API Changes:
3508
3509* Refactor message and message_headers declarations
3510* prepared_buffers is private
3511* consume_buffers is removed
3512
3513--------------------------------------------------------------------------------
3514
35151.0.0-b18
3516
3517* Increase optimization settings for MSVC builds
3518
3519HTTP
3520
3521* Check invariants in parse_op:
3522* Clean up message docs
3523
3524WebSocket
3525
3526* Write buffer option does not change capacity
3527* Close connection during async_read on close frame
3528* Add pong, async pong to stream
3529
3530Core
3531
3532* Meet DynamicBuffer requirements for static_streambuf
3533* Fix write_frame masking and auto-fragment handling
3534
3535Extras
3536
3537* unit_test::suite fixes:
3538  - New overload of fail() specifies file and line
3539  - BEAST_EXPECTS only evaluates the reason string on a failure
3540* Add zlib module
3541
3542--------------------------------------------------------------------------------
3543
35441.0.0-b17
3545
3546* Change implicit to default value in example
3547* Tidy up some declarations
3548* Fix basic_streambuf::capacity
3549* Add basic_streambuf::alloc_size
3550* Parser callbacks may not throw
3551* Fix Reader concept doc typo
3552* Add is_Reader trait
3553* Tidy up basic_headers for documentation
3554* Tidy up documentation
3555* Add basic_parser_v1::reset
3556* Fix handling of body_what::pause in basic_parser_v1
3557* Add headers_parser
3558* Engaged invokable is destructible
3559* Improve websocket example in README.md
3560* Refactor read_size_helper
3561
3562API Changes:
3563
3564* Added init() to Reader requirements
3565* Reader must be nothrow constructible
3566* Reader is now constructed right before reading the body
3567  - The message passed on construction is filled in
3568* Rework HTTP concepts:
3569  - Writer uses write instead of operator()
3570  - Refactor traits to use void_t
3571  - Remove is_ReadableBody, is_WritableBody
3572  - Add has_reader, has_writer, is_Reader, is_Writer
3573  - More friendly compile errors on failed concept checks
3574* basic_parser_v1 requires all callbacks present
3575* on_headers parser callback now returns void
3576* on_body_what is a new required parser callback returning body_what
3577
3578--------------------------------------------------------------------------------
3579
35801.0.0-b16
3581
3582* Make value optional in param-list
3583* Frame processing routines are member functions
3584* Fix on_headers called twice from basic_parser_v1
3585* Constrain parser_v1 constructor
3586* Improve first line serialization
3587* Add pause option to on_headers interface
3588* Refactor base_parser_v1 callback traits:
3589* Refine Parser concept
3590* Relax ForwardIterator requirements in FieldSequence
3591* Fix websocket failure testing
3592* Refine Writer concept and fix exemplar in documentation
3593
3594API Changes:
3595
3596* Rename mask_buffer_size to write_buffer_size
3597* Make auto_fragment a boolean option
3598
3599The message class hierarchy is refactored (breaking change):
3600
3601* One message class now models both HTTP/1 and HTTP/2 messages
3602* message_v1, request_v1, response_v1 removed
3603* New classes basic_request and basic_response model
3604  messages without the body.
3605
3606    Error resolution: Callers should use message, request,
3607    and response instead of message_v1, request_v1, and
3608    response_v1 respectively.
3609
3610--------------------------------------------------------------------------------
3611
36121.0.0-b15
3613
3614* rfc7230 section 3.3.2 compliance
3615* Add HTTPS example
3616* Add Secure WebSocket example
3617* Fix message_v1 constructor
3618* Tidy up DynamicBuffer requirements
3619* Tidy up error types and headers
3620* Fix handling empty HTTP headers in parser_v1
3621
3622--------------------------------------------------------------------------------
3623
36241.0.0-b14
3625
3626* Add missing rebind to handler_alloc
3627* Fix error handling in http server examples
3628* Fix CMake scripts for MinGW
3629* Use BOOST_ASSERT
3630* Better WebSocket decorator
3631* Update and tidy documentation
3632
3633--------------------------------------------------------------------------------
3634
36351.0.0-b13
3636
3637* dstream improvements
3638* Remove bin and bin64 directories
3639* Tidy up .vcxproj file groupings
3640
3641--------------------------------------------------------------------------------
3642
36431.0.0-b12
3644
3645* Use -p to print suites from unit test main.
3646* BEAST_EXPECTS to add a reason string to test failures
3647* Fix unit test runner to output all case names
3648* Update README for build requirements
3649* Rename to CHANGELOG.md
3650
3651--------------------------------------------------------------------------------
3652
36531.0.0-b11
3654
3655* Set URI in generated WebSocket Upgrade requests
3656* Rename echo server class and file names
3657* Rename to DynamicBuffer in some code and documentation
3658* Fix integer warnings in Windows builds
3659* Add 32 and 64 bit Windows build support
3660* Update README for build instructions and more
3661* Add repository and documentation banners
3662
3663--------------------------------------------------------------------------------
3664
36651.0.0-b10
3666
3667* Fix compilation warnings
3668* Add websocketpp comparison to HTML documentation
3669
3670--------------------------------------------------------------------------------
3671
36721.0.0-b9
3673
3674* Fix CMakeLists.txt
3675
3676--------------------------------------------------------------------------------
3677
36781.0.0-b8
3679
3680* Fix include in example code
3681* Fix basic_headers rfc2616 Section 4.2 compliance
3682
3683--------------------------------------------------------------------------------
3684
36851.0.0-b7
3686
3687* Fix prepare by calling init. prepare() can throw depending on the
3688  implementation of Writer. Publicly provided beast::http writers never throw.
3689* Fixes to example HTTP server
3690* Fully qualify ambiguous calls to read and parse
3691* Remove deprecated http::stream wrapper
3692* Example HTTP server now calculates the MIME-type
3693* Fixes and documentation for teardown and use with SSL:
3694* Add example code to rfc7230 javadocs
3695* Remove extraneous header file <beast/http/status.hpp>
3696* Add skip_body parser option
3697
3698--------------------------------------------------------------------------------
3699
37001.0.0-b6
3701
3702* Use SFINAE on return values
3703* Use beast::error_code instead of nested types
3704* Tidy up use of GENERATING_DOCS
3705* Remove obsolete RFC2616 functions
3706* Add message swap members and free functions
3707* Add HTTP field value parser containers: ext_list, param_list, token_list
3708* Fixes for some corner cases in basic_parser_v1
3709* Configurable limits on headers and body sizes in basic_parser_v1
3710
3711API Changes:
3712
3713* ci_equal is moved to beast::http namespace, in rfc7230.hpp
3714
3715* "DynamicBuffer","dynabuf" renamed from "Streambuf", "streambuf". See:
3716  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4478.html#requirements.dynamic_buffers
3717
3718* basic_parser_v1 adheres to rfc7230 as strictly as possible
3719
3720--------------------------------------------------------------------------------
3721