Skip to content

Releases: abseil/abseil-cpp

Abseil LTS branch, January 2026

07 Jan 19:59
d407ef1

Choose a tag to compare

Abseil LTS 20260107.0

What's New

  • absl::StringResizeAndOverwrite(): A new function in absl/strings/resize_and_overwrite.h that acts as a polyfill for C++23's std::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 in absl/container/chunked_queue.h optimized for use as a FIFO (First-In, First-Out) queue.
  • absl::linked_hash_map and absl::linked_hash_set: New hash containers that maintain iteration order matching the insertion order. These are available in absl/container/linked_hash_map.h and absl/container/linked_hash_set.h.
  • absl::down_cast: Added to absl/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 uses dynamic_cast to verify the validity of the cast and terminates the program if the cast is invalid. In optimized builds, it uses static_cast for performance.

Breaking Changes

  • Mutex Deprecations: Legacy Mutex methods and MutexLock pointer constructors have been marked as deprecated. Users should migrate to the recommended APIs.
  • The polyfill type absl::string_view is now an alias for std::string_view in all builds. (9ebd93a)

Baseline: 1e566d9
Cherry-pick: d9d76ba
Cherry-pick: a3bf78f

Abseil LTS branch, August 2025, Patch 1

22 Sep 18:29
d38452e

Choose a tag to compare

Abseil LTS 20250814.1

What's New:

  • absl::Mutex now contains lower-case method names like lock() and shared_lock() to align with standard C++ mutex methods. This allows absl::Mutex to be used with std::scoped_lock and 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 to absl::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 an assert failure. Note that unless you changed absl/base/options.h, absl::string_view is an alias for std::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)

Abseil LTS branch, August 2025

14 Aug 19:59
987c57f

Choose a tag to compare

Abseil LTS 20250814.0

What's New:

  • absl::Mutex now contains lower-case method names like lock() and shared_lock() to align with standard C++ mutex methods. This allows absl::Mutex to be used with std::scoped_lock and 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 to absl::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 an assert failure. Note that unless you changed absl/base/options.h, absl::string_view is an alias for std::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

Abseil LTS branch, May 2025, Patch 1

17 Jun 14:51
76bb243

Choose a tag to compare

Abseil LTS 20250512.1

What's New:

  • The polyfill types absl::any, absl::optional, and absl::variant are now aliases for std::any, std::optional, and std::variant in all builds. (Note that the polyfill implementation absl::string_view remains at the present time, but it defaults to being an alias std::string_view in all builds.)
  • Added absl::FastTypeId<Type>(), which evaluates at compile-time to a unique id for the passed-in type.
  • Added absl::endian and absl::byteswap polyfills (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)

Abseil LTS branch, May 2025

12 May 18:32
bc257a8

Choose a tag to compare

Abseil LTS 20250512.0

What's New:

  • The polyfill types absl::any, absl::optional, and absl::variant are now aliases for std::any, std::optional, and std::variant in all builds. (Note that the polyfill implementation absl::string_view remains at the present time, but it defaults to being an alias std::string_view in all builds.)
  • Added absl::FastTypeId<Type>(), which evaluates at compile-time to a unique id for the passed-in type.
  • Added absl::endian and absl::byteswap polyfills (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

  • This release fails to compile with GCC7 and GCC8. This is fixed in 20250512.1.

Baseline: bc257a8

Abseil LTS branch, January 2025, Patch 1

18 Mar 18:28
d9e4955

Choose a tag to compare

Abseil LTS 20250127.1

What's New:

Breaking Changes:

  • Bazel BUILD files now reference repositories by their canonical names from the Bazel Central Registry. For example, Abseil is now @abseil-cpp instead of @com_google_absl, and GoogleTest is now @googletest instead of @com_google_googletest. Users still using the old WORKSPACE system may need to use repo_mapping on repositories that still use the old names. See 90a7ba6 for an example.

Other:

Known Issues

  • None known at this time.

Baseline: 98ebd7e
Cherry-pick: 9ac7062
Cherry-pick: d9e4955 (Patch 1)

Abseil LTS branch, January 2025

04 Feb 14:34
9ac7062

Choose a tag to compare

Abseil LTS 20250127.0

What's New:

Breaking Changes:

  • Bazel BUILD files now reference repositories by their canonical names from the Bazel Central Registry. For example, Abseil is now @abseil-cpp instead of @com_google_absl, and GoogleTest is now @googletest instead of @com_google_googletest. Users still using the old WORKSPACE system may need to use repo_mapping on repositories that still use the old names. See 90a7ba6 for an example.

Other:

Known Issues

  • None known at this time.

Baseline: 98ebd7e
Cherry-pick: 9ac7062

Abseil LTS branch, January 2025, Release Candidate 1

28 Jan 18:25
98ebd7e

Choose a tag to compare

Abseil LTS 20250127.rc1

What's New:

Breaking Changes:

  • Bazel BUILD files now reference repositories by their canonical names from the Bazel Central Registry. For example, Abseil is now @abseil-cpp instead of @com_google_absl, and GoogleTest is now @googletest instead of @com_google_googletest. Users still using the old WORKSPACE system may need to use repo_mapping on repositories that still use the old names. See 90a7ba6 for an example.

Other:

Known Issues

  • None known at this time.

Baseline: 98ebd7e

Abseil LTS branch, July 2024, Patch 1

23 Jan 15:04
dd4c89b

Choose a tag to compare

Abseil LTS 20240722.1

What's New:

  • Added GoogleTest matchers for absl::Status. These matchers make it easier to write unit tests for code that uses absl::Status.
  • Patch 1 addresses a security issue in hash container create/resize.

Breaking Changes:

Known Issues

  • None known at this time.

Baseline: 3358286
Cherry-pick: 2138590
Cherry-pick: 9a0743a
Cherry-pick: 4447c75
Cherry-pick: dd4c89b (Patch 1)

Abseil LTS branch, Jan 2024, Patch 3

23 Jan 15:01
54fac21

Choose a tag to compare

Abseil LTS 20240116.3

What's New:

  • Added absl::NoDestructor<T> to simplify defining static types that do not need to be destructed upon program exit.
  • Added configurable verbose logging (also known as VLOG).
  • Added absl::Overload(), which returns a functor that provides overloads based on the functors passed to it. Note that this functionality requires C++17 or newer.
  • Bzlmod is now officially supported (previously it was supported by the community). Note that it may take several days after the release for it to become available in the Bazel Central Registry.
  • Patch 3 addresses a security issue in hash container create/resize.

Breaking Changes:

  • AbslHashValue() no longer accepts C-style arrays as a parameter. Previously the array would decay to a pointer type, which could lead to subtle, unintended bugs. The most common potential error is passing a C-string literal. After this change, these call-sites require wrapping the literal in absl::string_view.
  • absl::weak_equality and absl::strong_equality have been removed. The corresponding std types were removed before C++20 was finalized (https://wg21.link/P1959R0).

Known Issues

  • None known at this time.

Baseline: 10f3e61
Cherry pick: 4a2c633
Cherry pick: 3ab97e7 (Patch 1)
Cherry pick: d7aaad8 (Patch 2)
Cherry pick: 54fac21 (Patch 3)