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