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