NOTE: Future Breaking Changes lists anticipated breaking changes in the upcoming 4.x release. This release is scheduled for 2027-12 or 2028-01.
NOTE: Please refer to the V3 Migration Guide for details on updating existing applications using v1.x.y or v2.x.y.
- The
pubsubliteclient library has been removed because the Pub/Sub Lite service has been turned down.
We are happy to announce the following GA libraries. Unless specifically noted, the APIs in these libraries are stable, and are ready for production use.
-
Explicit instance declaration is now encouraged during client initialization via a new overload of
MakeDataConnectionthat takes astd::vector<InstanceResource>. Specifying the target instances at client startup enables optimizing connection pooling (pre-warming/priming channels) and telemetry. The experimentalInstanceChannelAffinityOptionhas been removed; the newMakeDataConnectionoverload should be used instead.#include "google/cloud/bigtable/data_connection.h" namespace cbt = ::google::cloud::bigtable; auto connection = cbt::MakeDataConnection( {cbt::InstanceResource(google::cloud::Project("my-project"), "my-instance")}, google::cloud::Options{});
-
fix(bigtable): safely handle error states in metadata retrieval (#16225)
-
cleanup(bigtable)!: remove experimental InstanceChannelAffinityOption (#16213)
-
feat(bigtable): add explicit instance MakeDataConnection (#16191)
-
feat(bigtable): Add support for adding tags to an Instance in InstanceConfig (#16014)
-
fix(bigtable): DynamicChannelPoolSizingPolicyOption used correctly (#16188)
- feat(storage): Add full object checksum validation for appendable uploads finalize (#16245)
- fix(storage): enforce mutual exclusion between Close() and Finalize() in async writers (#16211)
- fix(storage): add Close() support to AsyncWriterConnectionResumed (#16163)
- This release is based on definitions as of 2026-06-23T06:02:24-07:00
We are happy to announce the following GA libraries. Unless specifically noted, the APIs in these libraries are stable, and are ready for production use.
- [Network Security API] has been updated with several additional services (#16122)
- Google Distributed Cloud Hosting (GDCH) Service Account credentials are now supported for REST endpoints. Support for gRPC endpoints will be available in a future release.
- fix(storage): avoid premature flush completion and concurrent writes in AsyncWriterConnectionBuffered (#16169)
- feat(storage): implement GCS overrun logging and resume prevention (#16150)
- fix(storage): add Close() support to AsyncWriterConnectionBuffered (#16145)
- fix(storage): Set the idempotency token for async rewrites (#16114)
- fix(storage): Add telemetry tracing support for async stream Close() (#16118)
- feat(storage): Add full object read checksum validation for Open (#16120)
- fix(storage): use server-reported size and crc on stream reconnect to avoid duplicate writes (#16115)
- fix(storage): Implement clean half-close stream teardown for appendable uploads (#16112)
- feat(storage): Add full object checksum validation for appendable uploads (#16110)
- feat(storage): Add read chunkwise checksum validation for sync grpc read (#16107)
- fix(storage): Resolve potential race condition in AsyncWriterConnectionImpl (#16099)
- feat(storage): Add delete object source field in ComposeObject API (#16094)
- feat(storage): Extend idempotency token use to all async mutation operations (#16100)
- fix: remove deprecated ATOMIC_VAR_INIT usage (#16127)
- fix(testing_util): link opentelemetry-cpp SDK as PUBLIC (#16101)
- This release is based on definitions as of 2026-05-25T07:03:03-07:00
- fix(bigtable): treat NOT_FOUND and PERMISSION_DENIED on channel refresh as success (#16086)
- feat(bigtable): add DeadlineOption (#16085)
- fix(storage): Reset write offset on gRPC BidiWriteObject resumable uploads (#16083)
- fix(storage): Handle request transformation after gRPC BidiWriteObject redirects (#16073)
- This release is based on definitions as of 2026-04-22T13:12:27-07:00
- Dynamic Channel Pool support has been added as an opt-in feature. It can be enabled via the InstanceChannelAffinityOption and configured via the DynamicChannelPoolSizingPolicyOption.
- Added Data Lineage Config Management library.(#16069)
- Added Business Glossary library.(#16072)
- Added CMEK library.(#16072)
- Added Data Products library.(#16072)
- feat(spanner): set read lock mode at client level (#16068)
- feat(storage): add IsOpen API for zonal read operation (#16063)
- This release is based on definitions as of 2026-04-02T09:44:56-07:00
We are happy to announce the following GA libraries. Unless specifically noted, the APIs in these libraries are stable, and are ready for production use.
- Gemini Enterprise for Customer Experience API
- Cluster Director API
- Vector Search API
- Vision AI API
- Workload Manager
- feat(storage): Get/Insert/Update/Patch Object contexts (#15933)
- This release is based on definitions as of 2026-02-23T01:04:53-08:00
- feat: Added DeleteCryptoKey and DeleteCryptoKeyVersion RPCs to permanently remove resources.
- feat: Introduced the RetiredResource resource to track records of deleted keys and prevent the reuse of their resource names.
- feat: Added ListRetiredResources and GetRetiredResource RPCs to manage and view these records.
All libraries except Bigtable, PubSub, Spanner, and Storage have had their default maximum retry policy duration reduced from 30 minutes to 10 minutes.
BREAKING CHANGES
As previously announced, google-cloud-cpp now requires C++ >= 17. This is
motivated by similar changes in our dependencies, and because C++ 17 has been
the default C++ version in all the compilers we support for several years.
We think this change is large enough that deserves a major version bump to signal the new requirements. Additionally, we have decommissioned previously deprecated API features and have also made some previously optional dependencies required.
NOTE: Please refer to the V3 Migration Guide for details on updating existing applications using v1.x.y or v2.x.y.