Boost
Releases
arrow_drop_down
Newest Release (1.90.0)
December 10, 2025
Dependencies
There was 1 dependency added (in 1 library) and 16 dependencies removed (in 10 libraries) this release.
Platform File SHA256 Hash
Unix boost_1_90_0-bin-msvc-all-32-64.7z d92b9....81303
boost_1_90_0-msvc-14.1-32.exe cd24f....6307e
boost_1_90_0-msvc-14.1-64.exe 6d103....aeafa
boost_1_90_0-msvc-14.2-32.exe 8fe7c....6f4e5
boost_1_90_0-msvc-14.2-64.exe b29c6....7276c
boost_1_90_0-msvc-14.3-32.exe e1528....31b3e
boost_1_90_0-msvc-14.3-64.exe b4b90....cfb4e
boost_1_90_0.tar.bz2 49551....fc305
boost_1_90_0.tar.gz 5e93d....7eea9
Windows boost_1_90_0.7z 78413....695b2
boost_1_90_0.zip bdc79....9973c

Version 1.90.0

New Libraries

  • OpenMethod:

    • Open-(multi-)methods in C++17 and above, from Jean-Louis Leroy.

Updated Libraries

  • Asio

    • Added the execution::inline_exception_handling property to describe what exception handling guarantees are made when execution occurs inline.

    • Added inline_executor, which always executes the submitted function inline.

    • Changed the default candidate executor for associated_executor from system_executor to inline_executor.

    • Added the inline_or_executor<> adapter and inline_or() helper, which will execute inline if possible and otherwise delegate to another executor.

    • Added overloads of dispatch, post and defer that take a function object to be run on the target executor, and deliver the result to the completion handler.

    • Added the redirect_disposition completion token adapter, as a generic counterpart for redirect_error.

    • Annotated deprecated items with the [[deprecated]] attribute.

    • Added a new configuration parameter "reactor" / "reset_edge_on_partial_read", which determines whether a partial read consumes the edge when using epoll.

    • Added new configuration parameters "reactor" / "use_eventfd" and "reactor" / "use_timerfd" that are used to determine whether the epoll backend uses eventfd and timerfd respectively.

    • Added the missing preprocessor check for BOOST_ASIO_DISABLE_TIMERFD.

    • Implemented a compile-time feature check for std::source_location support, in addition to std::experimental::source_location.

    • Stopped using the deprecated boost::array::c_array() function.

    • Fixed a resource leak in asio::awaitable move assignment.

    • Fixed a memory leak in ssl stream move assignment.

    • Fixed a thread sanitizer issue in kqueue reactor.

    • Fixed handler tracking arguments in io_uring backend.

    • Fixed an unused parameter warning in boost::asio::detail::null_thread.

    • Changed the macro-based coroutine implementation to ensure deterministic case labels when __COUNTER__ is used.

    • Fixed synchronous SSL stream shutdown to remap error::eof as async_shutdown does.

    • Changed stream_file and random_access_file on Windows to treat file paths as UTF-8 encoded strings.

    • Added checks to experimental::parallel_group and experimental::ranged_parallel_group to detect empty operation sets.

    • Removed workaround for _FORTIFY_SOURCE, added address length checking to ip::basic_resolver_results.

    • Fixed experimental::coro to have protection against max as a macro.

    • Updated detection of std::aligned_alloc for newer libc++ versions.

    • Various documentation fixes and improvements.

    • Consult the boost_at:/doc/libs/1_90_0/doc/html/boost_asio/history.html[Revision History] for further details.

  • Beast:

    • http::parser rejects non-standard trailer fields by default.

    • http::basic_parser uses a dedicated callback for trailer fields.

    • http::field constants are updated.

    • Fixed allocator move/copy assignment in flat_buffer and multi_buffer.

    • Fixed websocket permessage-deflate error on partial message consumption.

    • http::buffer_body ignores empty chunks.

    • Added http::basic_fields::contains member function.

    • Removed dependency on Boost.Preprocessor and Boost.StaticAssert.

  • Bloom:

    • Added bulk-mode insertion and lookup for increased performance.

    • Made lookup implementation branchless for block, fast_multiblock32 and fast_multiblock64, which results in some performance gains, particularly for mixed successful/unsuccessful queries.

  • Charconv:

    • Fixed quadmath detection in CMake for cross-compilation.

    • Fixed an issue where a sufficiently big buffer would error as not large enough in floating point to_chars.

  • Compat:

    • Added to_underlying.hpp (contributed by Braden Ganetsky.)

  • Container:

  • Conversion:

    • Dropped dependency on Boost.SmartPtr.

  • Core:

    • The implementation of BOOST_TEST_THROWS and BOOST_TEST_NO_THROW macros defined in boost/core/lightweight_test.hpp has been changed to avoid compiler warnings on some compilers, when the macros are used in if/else blocks. As a side effect of this change, the semicolon after the macro is now necessary. (PR#205)

    • boost::data and boost::size are now aliases for std::data and std::size, respectively, when the latter are provided by compiler. This resolves potential ambiguities when both boost:: and std:: alternatives are found by the compiler, e.g. as a result of ADL. (PR#206)

  • DLL:

    • Fixed issues with std::error_code being passed to boost::system::error_code&. Many thanks to Thomas Klausner for the fix (PR#106).

    • Fixed install with CMake. Many thanks to Yury Bura for the fix (PR#103).

    • Fixed size variable shadowing.

  • DynamicBitset:

    • Added C++20 iterators.

    • Allowed choosing the underlying container type.

    • Added constexpr support when compiling as C++20 or later.

    • Made push_back(), pop_back() and lowest_bit() more efficient.

    • Made the constructor from basic_string explicit.

    • Removed several dependencies.

    • Added push_front(), pop_front(), find_first_off(), find_next_off() and constructors from C-style strings and basic_string_view (the latter in C++17 or later).

    • Changed the stream inserter to set badbit if an exception is thrown during output.

    • Made the stream extractor rethrow any exception coming from the underlying vector.

    • Ported the documentation to MrDocs and Antora.

  • Filesystem:

    • Clear passed error_code argument on successful completion of the permissions operation. (PR#338)

    • On Windows, added a workaround for directory_iterator constructor failing with an "Invalid Signature" error for a Samba 3.0.2 share, when SMB signing is required. (#334)

  • Flyweight:

    • Fixed compile errors in Clang 19 and later due to P0522R0 support.

  • Geometry:

  • GIL:

  • Interprocess:

  • JSON:

    • Removed dependencies on Boost.Align and Boost.StaticAssert.

    • Switched to a faster hashing algorithm.

  • LexicalCast:

    • More tests and fixes for floating-point special value conversions to integers and bool. Fixes compiler warning C4804 when lexical casting from float to bool.

    • Dropped dependency to Boost.TypeTraits. Many thanks to Romain Geissler for implementing the major part of the work (PR#87).

    • Switch from implicit to explicit type conversion to avoid compiler warnings. Many thanks to bmagistro for the PR (PR#85).

    • Fixed mistakes in documentation. Many thanks to ivanpanch for the PR (PR#86).

    • Fixed regression in unsigned short to wstring casting without wchar_t builtin type.

  • Locale:

    • Fixed B2 build files to avoid building dynamic versions of various Boost libraries when only static ones are requested (PR#266).

    • When ISO8859-1 or ISO8859-8 encoding is requested, allow using Windows codepages 1252 or 1255, respectively, instead of using the "C" (classic) locale when the selected Windows locale doesn’t support that ISO8859 encoding.

    • Enabled a workaround for an issue in Cygwins stdlib when converting some long UTF-8 sequences to UTF-16.

  • Log:

    • Fixed a missed optimization in value_ref visitation.

    • Fixed a possible long and useless loop on log file rotation in text_file_backend. If the log file name pattern did not include a file counter and the log file size exceeded the rotation_size limit, then the sink backend would repeatedly try to open a new log file with a different counter value and end up opening the same file every time. (#252)

    • Made file size checks more robust against integer overflows in text_file_backend.

  • Math:

    • Added new sub-library: Reverse-Mode Automatic Differentiation.

    • Added new constant: log_pi.

    • Added proper promotion policy support to logit, logistic_sigmoid, and logistic distributions.

    • Numerous fixes and edge case repairs to the special functions.

  • Mp11:

    • Updated mp_reverse_fold to work on fixed size lists

  • MQTT5:

    • Removed dependency on Boost.Spirit.

    • Auto-reconnection now triggers on any transport-layer error instead of a limited whitelist (#38).

    • Added at_transport_error callback to the Logger interface.

  • MSM:

  • Multiprecision:

    • Significant improvements to testing and coverage of newer cpp_double_fp_backend.

  • MySQL:

    • Deprecated support for Clang versions older than 4.0. These compilers might still work, but they won’t be actively tested in CI.

    • Added tests to guarantee compatibility with MySQL 9.x.

    • Added tests to guarantee compatibility with Clang versions up to 20, and GCC versions up to 15.

  • Parser:

    • Fixed ill-formedness when using move-only callables with closures (PR#284)

    • Fix wonky const-incompatibility in GlobalState parser template params (#250).

    • Fix ill-formedness in some cases when using the permutation parser (#268).

    • Fixed an error in sequence parsing that could cause some attributes to be overwritten by later parsers in a sequence (#279).

    • Fix the handling of opt-parsers that could leave a std::optional attribute containing a value even though the parser that produced it failed (#279 and #285).

    • Multiple runtime optimizations (#245, PR#254, PR#255, PR#256).

    • A modest compile-time and code size optimization (#250).

    • Make transform constexpr (PR#275).

    • Move-versus-forward warning mitigation (#272).

    • Correct the documentation for the attribute type of the if_ directive (#278).

    • Correct many, many typos in the docs (PR#271).

  • PFR:

    • Added an implementation based on C++26 destructuring into a pack, that fixes majority of known limitations of the library and avoids excessive template instantinations. The new implementation can be explicitly enabled/disabled by a new BOOST_PFR_USE_CPP26 macro. Many thanks to Jean-Michaël Celerier for the PR (PR#194).

    • Multiple fixes to CMake. Many thanks to Alexander Grund for the PRs!

  • Random:

    • Fix for construction of xoshiro family of generators from SeedSeq.

  • Redis:

    • Important changes to cancellation:

      • Improved the per-operation support in async_exec(), and added support for asio::cancel_after. Requests can now be cancelled at any point, and cancellations don’t interfere with other requests anyhow. Pull requests PR#310 and #226.

      • Deprecated the cancel_on_connection_lost and cancel_if_not_connected flags in request::config. To limit the time span that async_exec might take, use asio::cancel_after, instead. cancel_on_connection_lost default has been changed to false. Pull requests PR#329 and PR#334.

      • Deprecated calling cancel with operation::resolve, connect, ssl_handshake, reconnection and health_check. Users should employ cancel(operation::run), instead. Pull request PR#321.

      • Added support for per-operation cancellation in async_run(). Issue #319.

    • Added support for custom setup requests using config::setup. When setting these fields, users can replace the library-generated HELLO request by any other arbitrary request. Issue #302 and pull request PR#303.

    • Deprecated request::config::hello_with_priority. If you need to execute a request before any other, use config::setup, instead. Pull request PR#305.

    • Valkey long-term support: we guarantee Valkey compatibility starting with this release. Issue #296.

    • Added a request::append() function, to concatenate request objects. Issue #341.

    • The health checker algorithm has been redesigned to avoid false positives under heavy loads. PING commands are now only issued when the connection is idle, instead of periodically. Issue #104.

    • Added config::read_buffer_append_size, which allows to control the expansion of the connection’s read buffer. Pull request PR#283.

    • Added usage::bytes_rotated, which measures data copying when reading and parsing data from the server. Pull request PR#311.

    • Bug fixes:

      • Fixed a bug causing an exception to be thrown when parsing a response that contains an intermediate error into a generic_response. Issue #287.

      • Fixed a number of race conditions in the cancel() function of connection and basic_connection that could cause cancellations to be ignored. Issue #318.

      • Users with an empty password but a non-default username are now correctly authenticated. Issue #298.

      • Fixed a problem that could cause an error during HELLO to make subsequent HELLO attempts during reconnection to fail. Issue #290.

      • Errors during HELLO are now correctly logged. Issue #297.

  • SmartPtr:

    • The functionality enabled by the deprecated macros BOOST_SP_ENABLE_DEBUG_HOOKS, BOOST_SP_USE_STD_ALLOCATOR, and BOOST_SP_USE_QUICK_ALLOCATOR has been removed.

    • The header <boost/smart_ptr/detail/quick_allocator.hpp> has been marked deprecated and will be removed in a future release.

    • Configurations that define BOOST_NO_CXX11_HDR_ATOMIC are no longer supported; a conforming C++11 <atomic> is now required.

    • The deprecated macros BOOST_AC_USE_SPINLOCK, BOOST_AC_USE_PTHREADS, BOOST_SP_USE_SPINLOCK, and BOOST_SP_USE_PTHREADS are no longer functional.

    • Platform-specific implementations of atomic_count, sp_counted_base and spinlock are no longer used and have been removed.

    • Configurations that define BOOST_NO_CXX11_HDR_MUTEX are no longer supported; a conforming C++11 <mutex> is now required.

    • Some unused headers in boost/smart_ptr/detail/ have been removed.

  • Stacktrace:

  • StaticString:

    • Aligned to_static_[w]string() with std::to_[w]string() in C++26.

    • Removed usage of an additional buffer in to_static_[w]string().

    • Added resize_and_overwrite().

  • STLInterfaces:

    • Fixed ill-formedness with GCC 14 (PR#80).

    • Fixed ill-formedness when using move-only callables with closures.

  • Test:

    • Fixed a few warnings on Windows Clang.

  • TypeIndex:

    • Dropped dependency on Boost.Core.

    • Run all the tests in CMake too, Many thanks to Alexander Grund for some fixes and help.

  • URL:

    • segments_view and segments_encoded_view gained constant-time iterator-based subview constructors.

    • Added zone-id setters (e.g. for IPv6 link-local addresses).

    • Host setters now accept/propagate zone-id.

    • Fixed: resolve now replicates the reference fragment in all cases (#920).

    • Fixed: encoded_host_address assertions account for zone-id.

    • Refactor: replaced BOOST_STATIC_ASSERT with BOOST_CORE_STATIC_ASSERT (#934).

    • Refactor: preserved absolute semantics for segment subviews (#939).

  • Uuid:

    • string_generator is now constexpr on C++14 and higher.

    • Added header boost/uuid/constants.hpp.

    • Renamed boost/uuid/uuid_generators.hpp to boost/uuid/generators.hpp. The old name is retained for compatibility.

  • Variant2:

    • More functions have been marked as constexpr, including ~variant. This didn’t matter before C++20, but does now.

Compilers Tested

Boost’s primary test compilers are:

  • Linux:

    • Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, 15.0.0

    • Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0

    • Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0

    • Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0

    • Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0

    • GCC, C++03: 4.6.3, 11, 12

    • GCC, C++11: 4.7.3, 4.8.5, 11, 12

    • GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12

    • GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12

    • GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12

  • OS X:

    • Apple Clang, C++03: 11.0.3

    • Apple Clang, C++11: 11.0.3

    • Apple Clang, C++14: 11.0.3

    • Apple Clang, C++17: 11.0.3

    • Apple Clang, C++20: 11.0.3

  • Windows:

    • Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3

Acknowledgements

Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release.

Contributors

Peter Dimov
Peter Dimov
Contributor
Gennaro Prota
Contributor
Christopher Kormanyos
Christopher Kormanyos
Contributor
Alexander Grund
Alexander Grund
Contributor
Ion Gaztañaga
Ion Gaztañaga
Contributor
Matt Borland
Matt Borland
Contributor
Nana Sakisaka
Nana Sakisaka
Contributor
Andrey Semashev
Andrey Semashev
Contributor
mzhelyez
Contributor
ivanpanch
Contributor
Rene Rivera
Rene Rivera
Contributor
Christian Granzin
Contributor
Anarthal (Rubén Pérez)
Anarthal (Rubén Pérez)
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Christian Granzin
Contributor
Klemens Morgenstern
Klemens Morgenstern
Contributor
Mohammad Nejati
Mohammad Nejati
Contributor
Alan de Freitas
Alan de Freitas
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Antony Polukhin
Antony Polukhin
Contributor
Dmitry
Dmitry
Contributor
Zach Laine
Zach Laine
Contributor
Nigel Stewart
Nigel Stewart
Contributor
spreadsort
spreadsort
Contributor
Maksym Zhelyeznyakov
Contributor
Vissarion Fisikopoulos
Vissarion Fisikopoulos
Contributor
Andreas Buhr
Contributor
Marcelo Zimbres
Marcelo Zimbres
Contributor
Tim Blechmann
Tim Blechmann
Contributor
Stefan Seefeld
Stefan Seefeld
Contributor
Maksym Zhelyeznyakov
Contributor
Oliver Kowalke
Oliver Kowalke
Contributor
E Kawashima
E Kawashima
Contributor
sdarwin
sdarwin
Contributor
Andrew Johnson
Andrew Johnson
Contributor
James E. King III
James E. King III
Contributor
Bruno Iljazovic
Contributor
Glen Fernandes
Glen Fernandes
Contributor
henry-ch
Contributor
Christophe Henry
Christophe Henry
Contributor
Maksym Zhelyeznyakov
Contributor
Emil Dotchevski
Emil Dotchevski
Contributor
Dirk Stolle
Dirk Stolle
Contributor
Barend Gehrels
Barend Gehrels
Contributor
Tinko Bartels
Tinko Bartels
Contributor
Vinnie Falco
Vinnie Falco
Contributor
braden
braden
Contributor
bmagistro
Contributor
Romain Geissler
Romain Geissler
Contributor
Samuel Debione
Samuel Debione
Contributor
John Maddock
John Maddock
Contributor
dependabot[bot]
Contributor
Frank Mori Hess
Frank Mori Hess
Contributor
Niall Douglas
Niall Douglas
Contributor
Erik Bråthen Solem
Contributor
Vasanth Karanam
Contributor
wmamrak
wmamrak
Contributor
warren
warren
Contributor
Richard Thomson
Richard Thomson
Contributor
sigbjorn
Contributor
m4xG4
Contributor
Jenkins nedprod CI
Contributor
Joel de Guzman
Joel de Guzman
Contributor
Pavel P
Contributor
Adem Budak
Contributor
Sylvain Joubert
Sylvain Joubert
Contributor
Anton Gladky
Contributor
Vladimir Prus
Vladimir Prus
Contributor
zs
Contributor
Stat1cV01D
Contributor
chrisse74
chrisse74
Contributor
Abhay Kumar
Contributor
zjyhjqs
Contributor
biljazovic
Contributor
Hennadii Stepanov
Hennadii Stepanov
Contributor
Orgad Shaneh
Orgad Shaneh
Contributor
Harsha Totakura
Contributor
Arthur O'Dwyer
Contributor
Jonathan Wakely
Jonathan Wakely
Contributor
chn
Contributor
Ta'am
Contributor
Francisco Tapia
Francisco Tapia
Contributor
Konvicka Filip
Contributor
Sébastien Loriot
Contributor
Juan Carlos Arevalo Baeza (JCAB)
Contributor
me@kennethreitz.org
Contributor
Thomas Kent
Thomas Kent
Contributor
Marshall Clow
Marshall Clow
Contributor
crueter
Contributor
Jeremy W. Murphy
Jeremy W. Murphy
Contributor
Robert Adam
Contributor
Marcos Simental
Contributor
Dong Wang
Contributor
Miguel Company
Contributor
Zayd Rajab
Contributor
Ashish Sadanandan
Ashish Sadanandan
Contributor
AnonymousPC
Contributor
Lukas Friembichler
Lukas Friembichler
Contributor
ZHUO Qiang
Contributor
Hans Dembinski
Hans Dembinski
Contributor
Anthony Eden
Anthony Eden
Contributor
Thomas Höhlig
Contributor
Aditya Pillai
Contributor
greg7mdp
Contributor
EelisVP
Contributor
Carlo Bramini
Contributor
newyork_loki
Contributor
Sergey Chebotarev
Contributor
dvtate
Contributor
Yury Bura
Yury Bura
Contributor
ericli-splunk
Contributor