Skip to content

Releases: abseil/abseil-cpp

Abseil LTS branch, January 2026, Patch 1

11 Feb 15:41
255c84d

Choose a tag to compare

Abseil LTS 20260107.1

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
Cherry-pick: 7313246 (Patch 1)
Cherry-pick: 5b086d7 (Patch 1)

Abseil LTS branch, August 2025, Patch 2

11 Feb 15:43
0cf0a5c

Choose a tag to compare

Abseil LTS 20250814.2

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)
Cherry-pick: 7313246 (Patch 2)

Abseil LTS branch, May 2025, Patch 2

11 Feb 15:45
38bb0b9

Choose a tag to compare

Abseil LTS 20250512.2

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)
Cherry-pick: 7313246 (Patch 2)

Abseil LTS branch, January 2025, Patch 2

11 Feb 15:51
3cb205c

Choose a tag to compare

Abseil LTS 20250127.2

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)
Cherry-pick: 7313246 (Patch 2)

Abseil LTS branch, July 2024, Patch 2

11 Feb 15:53
216a6be

Choose a tag to compare

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 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)
Cherry-pick: 7313246 (Patch 2)

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