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