Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Version 1.89.0

Version 1.89.0 beta 1

July 17th, 2025 18:13 GMT

Documentation

Beta Downloads
PlatformFileSHA256 Hash
unixboost_1_89_0_b1.tar.bz29ece9af2b243f90b76f679b278b512b6589c7843e4dd54cffcb719bbc0801998
boost_1_89_0_b1.tar.gz984ee193ddf192795ba635d4c73b2b43e1e596995d7ce5519a3a72fab9bc0b40
windowsboost_1_89_0_b1.7zf255b4a31558b3fb81be1dc7e8b367fb9997dbe5e71da98a730c681377abffa9
boost_1_89_0_b1.zipbf45af4a58f39c2ec374ef6e70b26859b786ba2ed087bc869d92a2b4de14e0d2
* The download links are supported by grants from The C++ Alliance.

New Libraries

  • Bloom: Bloom filters, from Joaquín M López Muñoz.

Updated Libraries

* [phrase library..[@/libs/any/ Any]:]
  * [*Initial support for C++20 Modules]. See the docs for more info.
  • Beast:
    • Fixes
      • Conditionally defined immediate_executor_type in async_base.
      • Added missing cstdint header to detail/cpu_info.hpp.
      • Fixed std::is_trivial deprecation warnings.
      • handshake_timeout now applies to closing handshakes during reads.
    • Improvements
      • Replaced detail/work_guard.hpp with net::executor_work_guard.
      • Fixed portability issues for building tests in MinGW.
    • Documentation
      • Removed moved sections from documentation.
      • Removed superfluous log messages from tests.
    • Acknowledgements
      • yliu1021
  • Compat:
    • Added move_only_function.hpp.
  • ContainerHash:
    • Added the hash_is_avalanching trait class.
  • Conversion:
    • Added an ability to use polymorphic_downcast and polymorphic_cast in constexpr (requires C++20).
  • DLL:
    • Fixed compiling and exporting on Cygwin. Many thanks to Luohao Wang for the PR!
    • Fixed building on FreeBSD. Thanks to ash for the bug report!
    • Added BOOST_DLL_USE_STD_FS CMake option to match the preprocessor option. Thanks to Yury Bura for the PR!
  • Hash2:
    • Added Blake2 algorithm (blake2s_256, blake2b_512).
    • Added XXH3 algorithm (xxh3_128).
  • MySQL:
    • The caching_sha2_password authentication plugin can now be used without TLS. This is the default in MySQL 8 and above. Plaintext connections that attempt to use this plugin no longer fail with client_errc::auth_plugin_requires_ssl (#313).
    • Fixed a problem causing client_errc::incomplete_message to be returned during connection establishment when the target database does not exist and the caching_sha2_password is used. The appropriate server-generated diagnostic is now returned. See issues #468 and #488.
    • The handshake algorithm is now more resilient to protocol violations (#469).
    • Fixed a build failure with gcc-15 due to a missing include (PR#475). Thanks hhoffstaette for the PR.
    • Optimized metadata representation to be faster to construct and take less memory (#461).
  • PFR:
    • Rewrite C++20 module following the new recommended Boost practice. See the docs for more info.
    • Fixed C++26 compilation on modern clang compilers. Thanks to Valery Mironov for the report!
    • Support types that use 'Arrays of Length Zero' compiler extension.
    • Fixed typos. Thanks to Egor for highlighting the issues!
    • Return std::array<std::string_view, 0> type for boost::pfr::names_as_array(empty_struct{}) to allow compilation of for (std::string_view name : boost::pfr::names_as_array(empty_struct{})). Many thanks to sabudilovskiy for the bug report!
  • TypeIndex:
    • Initial support for C++20 Modules. See the docs for more info.
  • Unordered:
    • Deprecated boost::unordered::hash_is_avalanching is now a using-declaration of boost::hash_is_avalanching in <boost/container_hash/hash_is_avalanching.hpp>. Use that header directly instead. <boost/unordered/hash_traits.hpp> will be removed in the future.
    • Added pull(const_iterator) to open-addressing containers. This operation allows for efficient removal and retrieval of an element via move construction.
  • Histogram:
    • Update CMake minimum version and Python detection in CMake
    • Improve documentation
      • Add example on how to make an axis which accepts multiple value types that are not implicitly convertible
      • Show how to use histogram::fill with a multidimensional histogram efficiently when data per dimension is already available as contiguous data
    • Don't use deprecated form of user-defined literal operator
    • Add support for modular build structure with b2
    • Fixed warnings in MSVC about narrowed types
    • Added collector accumulator, which stores all values in a bin
    • Internal changes to tests and classes in detail namespace

Updated Tools

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.