Releases: abseil/abseil-cpp
Releases · abseil/abseil-cpp
Release list
Abseil LTS branch, May 2026
Abseil LTS 20260526.0
What's New
status_macros.h: Helper macros and methods to return and propagate errors withabsl::Status.absl::StatusBuilder: A builder type that implicitly converts toabsl::Statusandabsl::StatusOr<T>that helps add additional information.absl::SourceLocation: A type that provides source-code location info for C++17 and later. It differs fromstd::source_locationin several ways. Seesource_location.hfor more information.absl::ClockInterface: An abstract interface representing a clock, allowing decoupling code that uses time from the code that creates a point in time. Useful for injecting clocks into interfaces, especially for testing purposes.absl::SimulatedClock: A concrete clock implementation that does not "tick" on its own. Useful for manipulating time for testing purposes.absl::AnySpan: A type that provides a view of any random access container.absl::optional_ref: A type that provides astd::optional-like interface aroundT*.absl::bind_back: A drop-in replacement for C++23'sstd::bind_back().absl::CopyCordToSpan: A safer way to copy the contents of anabsl::Cordto a buffer.absl::HighPrecision: Anabsl::StrCatformatter that produces strings that would parse to the exact original floating point value (except in the case of NaNs).throw_delegate.h: Helper functions that allow throwing exceptions consistently from anywhere without risking ODR violations.
Breaking Changes
- For GCC users, Abseil now requires at least GCC 10 following Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.
- Many pre-C++17 polyfill types are marked deprecated. Users should migrate to the
std::equivalent.
Known Issues
- Bazel's
compatibility_levelwas deprecated in 8.6.0 and 9.1.0 and thus removed fromMODULE.bazel. However, this is causing builds with Bazel versions prior to 8.6.0 and 9.1.0 to fail. The recommended workaround is to update to a newer version of Bazel. - Abseil fails to compile with GCC 16 when BMI2 extensions are enabled. See #2071 for details.
Abseil LTS branch, May 2026, Release Candidate 1
Abseil LTS 20260526.rc1
What's New
status_macros.h: Helper macros and methods to return and propagate errors withabsl::Status.absl::StatusBuilder: A builder type that implicitly converts toabsl::Statusandabsl::StatusOr<T>that helps add additional information.absl::SourceLocation: A type that provides source-code location info for C++17 and later. It differs fromstd::source_locationin several ways. Seesource_location.hfor more information.absl::ClockInterface: An abstract interface representing a clock, allowing decoupling code that uses time from the code that creates a point in time. Useful for injecting clocks into interfaces, especially for testing purposes.absl::SimulatedClock: A concrete clock implementation that does not "tick" on its own. Useful for manipulating time for testing purposes.absl::AnySpan: A type that provides a view of any random access container.absl::optional_ref: A type that provides astd::optional-like interface aroundT*.absl::bind_back: A drop-in replacement for C++23'sstd::bind_back().absl::CopyCordToSpan: A safer way to copy the contents of anabsl::Cordto a buffer.absl::HighPrecision: Anabsl::StrCatformatter that produces strings that would parse to the exact original floating point value (except in the case of NaNs).throw_delegate.h: Helper functions that allow throwing exceptions consistently from anywhere without risking ODR violations.
Breaking Changes
- For GCC users, Abseil now requires at least GCC 10 following Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.
Baseline: b29e7f9
Abseil LTS branch, January 2026, Patch 1
Abseil LTS 20260107.1
What's New
absl::StringResizeAndOverwrite(): A new function inabsl/strings/resize_and_overwrite.hthat acts as a polyfill for C++23'sstd::basic_string::resize_and_overwrite. This allows for efficient resizing and in-place initialization of strings, avoiding the overhead of default initialization, which is particularly useful when working with C-style APIs that write directly to a buffer. See #1136 (comment) for performance notes.absl::chunked_queue: A new container inabsl/container/chunked_queue.hoptimized for use as a FIFO (First-In, First-Out) queue.absl::linked_hash_mapandabsl::linked_hash_set: New hash containers that maintain iteration order matching the insertion order. These are available inabsl/container/linked_hash_map.handabsl/container/linked_hash_set.h.absl::down_cast: Added toabsl/base/casts.h. This function provides a safer way to perform downcasts in a polymorphic type hierarchy. In debug builds (or when hardened asserts are enabled), it usesdynamic_castto verify the validity of the cast and terminates the program if the cast is invalid. In optimized builds, it usesstatic_castfor performance.
Breaking Changes
- Mutex Deprecations: Legacy
Mutexmethods andMutexLockpointer constructors have been marked as deprecated. Users should migrate to the recommended APIs. - The polyfill type
absl::string_viewis now an alias forstd::string_viewin all builds. (9ebd93a)
Baseline: 1e566d9
Cherry-pick: d9d76ba
Cherry-pick: a3bf78f
Cherry-pick: 7313246 (Patch 1)
Cherry-pick: 5b086d7 (Patch 1)
Abseil LTS branch, August 2025, Patch 2
Abseil LTS 20250814.2
What's New:
absl::Mutexnow contains lower-case method names likelock()andshared_lock()to align with standard C++ mutex methods. This allowsabsl::Mutexto be used withstd::scoped_lockand friends. The old names are still present but may be removed in a future release.- The RAII Mutex-locker types like
absl::MutexLock,absl::ReaderMutexLock, and friends now accept references toabsl::Mutex. The pointer-accepting constructors are now deprecated, and may be removed in a future release.
Breaking Changes:
- Nullability template types, which were deprecated in the May 2025 release, have been removed.
absl::string_view(nullptr), which is undefined behavior according to the C++ standard, now triggers anassertfailure. Note that unless you changedabsl/base/options.h,absl::string_viewis an alias forstd::string_view, so by default you will be inheriting the behavior of your standard library instead of using the Abseil implementation.- Abseil's hash tables now require a hash function that has a return type with size >=
sizeof(size_t).
Baseline: 987c57f
Cherry-pick: d38452e (Patch 1)
Cherry-pick: 7313246 (Patch 2)
Abseil LTS branch, May 2025, Patch 2
Abseil LTS 20250512.2
What's New:
- The polyfill types
absl::any,absl::optional, andabsl::variantare now aliases forstd::any,std::optional, andstd::variantin all builds. (Note that the polyfill implementationabsl::string_viewremains at the present time, but it defaults to being an aliasstd::string_viewin all builds.) - Added
absl::FastTypeId<Type>(), which evaluates at compile-time to a unique id for the passed-in type. - Added
absl::endianandabsl::byteswappolyfills (25bce12).
Breaking Changes:
- Abseil now requires at least C++17 and follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.
- Nullability template types are deprecated and will be removed in a future release. The macro-style annotations (
absl_nonnull,absl_nullable) should be used instead (caf854d).
Known Issues
- None known at this time.
Baseline: bc257a8
Cherry-pick: 76bb243 (Patch 1)
Cherry-pick: 7313246 (Patch 2)
Abseil LTS branch, January 2025, Patch 2
Abseil LTS 20250127.2
What's New:
- Added support for Bazel 8.0
- Added support for Bazel Platforms for better portability
- Added
ABSL_ATTRIBUTE_VIEWandABSL_ATTRIBUTE_OWNERfor diagnosing certain lifetime issues - Many performance improvements
- A security issue in hash container create/resize has been fixed. Note that the latest patch releases for previous LTS versions also address this issue.
Breaking Changes:
- Bazel
BUILDfiles now reference repositories by their canonical names from the Bazel Central Registry. For example, Abseil is now@abseil-cppinstead of@com_google_absl, and GoogleTest is now@googletestinstead of@com_google_googletest. Users still using the oldWORKSPACEsystem may need to userepo_mappingon repositories that still use the old names. See 90a7ba6 for an example.
Other:
- This will be the last release to support C++14. Future releases will require at least C++17.
Known Issues
- None known at this time.
Baseline: 98ebd7e
Cherry-pick: 9ac7062
Cherry-pick: d9e4955 (Patch 1)
Cherry-pick: 7313246 (Patch 2)
Abseil LTS branch, July 2024, Patch 2
Abseil LTS 20240722.2
What's New:
- Added GoogleTest matchers for
absl::Status. These matchers make it easier to write unit tests for code that usesabsl::Status. - Patch 1 addresses a security issue in hash container create/resize.
Breaking Changes:
absl::AlphaNumno longer allows brace-initialization. This was never intended to be supported, nor is it recommended thatabsl::AlphaNumever be spelled in user code.- The deprecated symbol
absl::kuint128maxhas been removed and should be replaced withabsl::Uint128Max(). absl::aligned_storage_t, which was a polyfill consistent withstd::aligned_storage_t, has been removed.std::aligned_storage_tis deprecated in C++23. See https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1413r3.pdf for a suggested replacement.absl::StrJoinnow has aabsl::string_viewoverload. This allows for passing a collection of string-like objects without having to convert everything to the same type first. However, this may be a breaking change for users passing an explicit template argument toabsl::StrJoin. In this case, simply remove the explicit template parameter.vlog_is_on.his now a public header and is no longer included fromlog.h. To useVLOG_IS_ON(),absl/log/vlog_is_on.hmust be included.
Known Issues
- None known at this time.
Baseline: 3358286
Cherry-pick: 2138590
Cherry-pick: 9a0743a
Cherry-pick: 4447c75
Cherry-pick: dd4c89b (Patch 1)
Cherry-pick: 7313246 (Patch 2)
Abseil LTS branch, January 2026
Abseil LTS 20260107.0
What's New
absl::StringResizeAndOverwrite(): A new function inabsl/strings/resize_and_overwrite.hthat acts as a polyfill for C++23'sstd::basic_string::resize_and_overwrite. This allows for efficient resizing and in-place initialization of strings, avoiding the overhead of default initialization, which is particularly useful when working with C-style APIs that write directly to a buffer. See #1136 (comment) for performance notes.absl::chunked_queue: A new container inabsl/container/chunked_queue.hoptimized for use as a FIFO (First-In, First-Out) queue.absl::linked_hash_mapandabsl::linked_hash_set: New hash containers that maintain iteration order matching the insertion order. These are available inabsl/container/linked_hash_map.handabsl/container/linked_hash_set.h.absl::down_cast: Added toabsl/base/casts.h. This function provides a safer way to perform downcasts in a polymorphic type hierarchy. In debug builds (or when hardened asserts are enabled), it usesdynamic_castto verify the validity of the cast and terminates the program if the cast is invalid. In optimized builds, it usesstatic_castfor performance.
Breaking Changes
- Mutex Deprecations: Legacy
Mutexmethods andMutexLockpointer constructors have been marked as deprecated. Users should migrate to the recommended APIs. - The polyfill type
absl::string_viewis now an alias forstd::string_viewin all builds. (9ebd93a)
Abseil LTS branch, August 2025, Patch 1
Abseil LTS 20250814.1
What's New:
absl::Mutexnow contains lower-case method names likelock()andshared_lock()to align with standard C++ mutex methods. This allowsabsl::Mutexto be used withstd::scoped_lockand friends. The old names are still present but may be removed in a future release.- The RAII Mutex-locker types like
absl::MutexLock,absl::ReaderMutexLock, and friends now accept references toabsl::Mutex. The pointer-accepting constructors are now deprecated, and may be removed in a future release.
Breaking Changes:
- Nullability template types, which were deprecated in the May 2025 release, have been removed.
absl::string_view(nullptr), which is undefined behavior according to the C++ standard, now triggers anassertfailure. Note that unless you changedabsl/base/options.h,absl::string_viewis an alias forstd::string_view, so by default you will be inheriting the behavior of your standard library instead of using the Abseil implementation.- Abseil's hash tables now require a hash function that has a return type with size >=
sizeof(size_t).
Abseil LTS branch, August 2025
Abseil LTS 20250814.0
What's New:
absl::Mutexnow contains lower-case method names likelock()andshared_lock()to align with standard C++ mutex methods. This allowsabsl::Mutexto be used withstd::scoped_lockand friends. The old names are still present but may be removed in a future release.- The RAII Mutex-locker types like
absl::MutexLock,absl::ReaderMutexLock, and friends now accept references toabsl::Mutex. The pointer-accepting constructors are now deprecated, and may be removed in a future release.
Breaking Changes:
- Nullability template types, which were deprecated in the May 2025 release, have been removed.
absl::string_view(nullptr), which is undefined behavior according to the C++ standard, now triggers anassertfailure. Note that unless you changedabsl/base/options.h,absl::string_viewis an alias forstd::string_view, so by default you will be inheriting the behavior of your standard library instead of using the Abseil implementation.- Abseil's hash tables now require a hash function that has a return type with size >=
sizeof(size_t).
Known Issues
CHECK_<OP>is failing to compile on older versions of GCC when one of the arguments is a C-style string. This is fixed by ba9a180 and will be included in a future patch release.
Baseline: 987c57f