Releases: googleapis/google-cloud-rust
2026-01-13
Breaking Changes
-
google-cloud-sql-v1 released as 2.0.0.
The service no longer accepts or produces a number of enum variants in SqlDSatabaseVersion.
These variants have been removed. While we do not expect that any working application can use or receive these enum values, we bumped the major version as the change is breaking.
-
google-cloud-compute-v1 released as 2.0.0.
A small number of functions, which we expect are rarely used, changed from returning
wkt::Emptyto returning the unit type(). This makes the client consistent with clients for other services. We apologize for any inconvenience.For more details, see the 2.0.0 migration guide.
Interesting features
-
The Cloud Pub/Sub preview gained a number of features, including a high-throughput
Subscriberclient for receiving messages from Cloud Pub/Sub.The
Subscribersupports at-least-once delivery subscriptions. It handles lease management. It exposes flow control configuration. It includes idle stream keepalives.The
Subscriberdoes not yet support stream retries (so sessions timeout after ~30 minutes), exactly-once delivery, or mocking. We are working on these.Your feedback is greatly appreciated while we stabilize this API!
-
The Cloud Storage client now supports
open_object().This operation allows you to open an object and then perform multiple ranged reads on the object.
Each ranged read has lower latency than performing the read by itself.
Note that this features is under an allow list, contact your account team to include your project into the list.
-
The Google Cloud Storage client can now created signed URLs.
-
Code samples showing how to use some client functions.
What's changed
- feat(pubsub): Initial support message ordering in Publisher by @PhongChuong in #4016
- docs(pubsub): override the service descriptions for admin clients by @suzmue in #4065
- fix(compute)!: prefer unit type over
wkt::Emptyin interfaces by @dbolduc in #4075 - docs(compute): include all features by @dbolduc in #4092
- docs(storage): improve
with_grpc_subchannelrustdoc by @coryan in #4094 - feat(storage): add
open_object()API by @coryan in #4108 - docs(guide): fix broken LRO links in compute.md by @gadekarnitesh in #4126
- feat(eventarcpublishing/v1): generate library by @coryan in #4145
- docs(storage):
open_object()is under allow list by @coryan in #4175 - docs(storage): improve signed url docs by @alvarowolfx in #4178
- docs(auth): improve signer docs by @alvarowolfx in #4180
- docs(storage): improve signed url builder docs by @alvarowolfx in #4197
- docs(auth): improve signer docs with devsite refs by @alvarowolfx in #4201
- docs(storage): add SignedUrlBuilder in main storage module page by @alvarowolfx in #4200
- feat(pubsub): add
Subscriberby @dbolduc in #4227 - idtoken: cache
user_accounttoken provider by @howardjohn in #4221 - docs: Samples for simple RPCs including get and delete by @amanda-tarafa in #4245
- chore(cloud-sql-v1)!: bump version to 2.0 by @coryan in #4273
New Contributors
- @zhumin8 made their first contribution in #4122
- @Bitdragon50 made their first contribution in #4109
- @gadekarnitesh made their first contribution in #4126
- @ldetmer made their first contribution in #4189
- @howardjohn made their first contribution in #4221
Full Changelog: release-20251210...release-20260113
2025-12-10
What's Changed
We are happy to announce that the google-cloud-compute-v1 crate is now Generally Available (GA).
We added support for ID Tokens in google-cloud-auth.
We also added a way to get access tokens directly in google-cloud-auth (instead of via a HeaderMap).
We also added examples for all setters for our message types (requests, responses, etc.).
- feat(trace/v1): generate library by @dbolduc in #3823
- docs(auth): add builder examples to id token builder by @alvarowolfx in #3818
- docs: add commit message guidance to CONTRIBUTING.md by @suzmue in #3834
- docs(auth): add idtoken samples by @alvarowolfx in #3819
- feat(aiplatform/v1): generate
schemacrates by @coryan in #3847 - feat(pubsub)!: Rename PublisherFactory to Client by @PhongChuong in #3905
- feat(auth): allow consuming access tokens directly by @alvarowolfx in #3642
- feat(auth): make idtoken stable by @alvarowolfx in #3821
- fix(gax-internal): no TLS config for http and IPv6 by @coryan in #3926
- feat(pubsub): add byte threshold to publisher by @PhongChuong in #3925
- docs(compute/v1): bump to 1.0.0 by @coryan in #4002
- feat(maintenance): generate library by @coryan in #4003
- feat(biglake/v1): generate library by @coryan in #4004
- docs: Generate setter samples for all by @amanda-tarafa in #4017
Full Changelog: release-20251114...release-20251210
2025-11-14
What's Changed
This release resolves an issue with our minimal version requirements. All of our crates that depend on google-cloud-longrunning received a patch release.
In addition, here are some of the other changes that are included in this release:
- cleanup(auth): make jsonwebtoken a dep only with cfg_google_cloud_unstable_id_token by @alvarowolfx in #3786
- fix(storage):
ReadObjectcloneable without cloneable stub by @mincrmatt12 in #3780
New Contributors
- @mincrmatt12 made their first contribution in #3780
- @JoeWang1127 made their first contribution in #3804
Full Changelog: release-20251111...release-20251114
2025-11-11
New Libraries
- We are happy to announce the v0.31.0-preview release of google-cloud-pubsub. As the version indicates, this library is under active development. We anticipate many breaking changes over the next few releases. The library is known to be incomplete. We do not recommend that you use the library in production. We do welcome feedback about the API, the documentation, or any bugs you may find.
What's Changed
- feat(gax): introduce connect error by @dbolduc in #3654
- fix(gaxi): retry connect errors by @dbolduc in #3656
- fix(storage): retry connection errors by @dbolduc in #3657
- fix(gaxi): retry connect errors over gRPC by @dbolduc in #3658
- docs(guide): how-to override the default endpoint by @coryan in #3667
- docs(guide): how-to override default authentication by @coryan in #3662
- docs(guide): how-to enable logging by @coryan in #3674
- doc(storage): document stub module by @dbolduc in #3690
- fix(storage):
StorageImplnameable outside crate by @dbolduc in #3683 - impl(storage): handle redirect errors by @coryan in #3715
- feat(gax-internal): preserve
tonic::Statuserrors by @coryan in #3758
Full Changelog: release-20251024...release-20251111
2025-10-24
New Libraries
- We have completed the implementation of the Compute API.
What's Changed
- feat(storage): accept String payload for write_object by @dbolduc in #3480
- docs: Show actual enum values in setter samples. by @amanda-tarafa in #3415
- docs(storage): user guide for mocking
Storageby @dbolduc in #3483 - fix(auth): Read scope from impersonated json by @sai-sunder-s in #3495
- docs(guide): code snippets for compute library by @coryan in #3515
- docs: Add setter samples for oneof fields by @amanda-tarafa in #3527
- docs: retries by default by @dbolduc in #3558
- docs: no client threads by @dbolduc in #3559
- fix(storage): disable default decompression by @coryan in #3550
- feat(storage): support decompressive transcoding by @coryan in #3573
- docs(compute/v1): initial user guide by @coryan in #3598
- fix(storage):
send_buffered()fails for some object sizes by @coryan in #3616 - docs(guide): update setup guide with user feedback improvements by @PhongChuong in #3620
Full Changelog: release-20251007...release-20251024
2025-10-07
Breaking Changes
- The google-cloud-cloudsecuritycompliance-v1 crate was bumped to 2.0 because the service had breaking changes.
- This is a Pre-GA service changes to its API are common and expected.
- google-cloud-discoveryengine-v1
- search(), and search_lite() return pages which contain both
Vec<SearchResult>andVec<Facet>. - Our code generator incorrectly used the
Facetas the items forsearch().by_items()andsearch_lite().by_items(). - The current type is (naturally)
SearchResult.
- search(), and search_lite() return pages which contain both
- We also fixed a similar problem in google-cloud-retail-v2:
- search() also returns pages with both
SearchResultandFacetlists, and theby_items()helper used theFacetwhereasSearchResultis the correct element to turn into items.
- search() also returns pages with both
New Libraries
- feat(locationfinder/v1): generate library by @coryan in #3299
- impl(compute/v1): bootstrap library by @coryan in #3383
What's Changed
-
Refactor most trait implementations out of the
model.rsfiles.- This reduces the file size by (approximately) a factor of 3, making it easier to read them in the documentation and to load them into IDEs.
-
Using locational or regional endpoints with the
StorageControlclient now result in errors.- The service does not support these endpoints (yet).
- The client library was erroneously using the global endpoint instead of the given locational or regional endpoints.
- If you encounter these errors, use the default, global endpoint (
storage.googleapis.com).
-
test(storage): run UBLA-disabled samples by @dbolduc in #3324
-
docs(storage): add read public object example by @suzmue in #3329
-
feat(storage): add rewrite_until_done helper as extension trait by @suzmue in #3328
-
docs(guide): add rewrite_until_done helper to rewrite guide by @suzmue in #3345
-
docs: Single value setter samples for Secret Manager and Workflows by @amanda-tarafa in #3369
-
docs: Adds setter samples for maps and repeated fields by @amanda-tarafa in #3409
-
fix(storage): respect locational endpoints by @dbolduc in #3445
New Contributors
- @westarle made their first contribution in #3346
- @brianquinlan made their first contribution in #3396
Full Changelog: v1.0.0...v1.1.0
v1.0.0
First GA release
We are proud to announce the 1.0 release of the Google Cloud client libraries for Rust. This is the first GA version of the client libraries.
What's Included
- Fully asynchronous clients for over 140 services, including Cloud Storage, Vertex AI, Secret Manager, and Key Management Service.
- Fully asynchronous auth library, with support for application default credentials, service account credentials, user credentials, compute engine metadata service, and OIDC-based external credentials1.
- Idiomatic abstractions for long-running operations and pagination APIs.
- Automatic retries for requests that fail due to transient errors.
- Automatic demarshalling of error details into idiomatic types.
- Automatic resumes for uploads to and downloads from Cloud Storage.
- Support for streaming uploads to Cloud Storage, with retries on errors.
- Automatic checksumming of data uploaded to or downloaded from Cloud Storage.
What's changed
Compared to the previous release (v0.12.0) this release bumps the version numbers to 1.0.0 and updates README files.
- feat(storage): support object contexts by @coryan in #3266
- docs: declare all libraries as GA by @coryan in #3186
- docs: remove caveats from top-level README by @coryan in #3293
Full Changelog: v0.12.0...v1.0.0
Footnotes
-
Also known as workload identify federation or "bring your own id". ↩
v0.12.0
What's Changed
Breaking Changes
- fix(auth)!: Remove support for quota project from API Key creds by @sai-sunder-s in #3244
- fix(auth)!: Remove universe domain builder method for mds by @sai-sunder-s in #3249
- cleanup(gax)!: future proof backoff policy by @coryan in #3250
- cleanup(gax)!: future proof polling policies by @coryan in #3251
New Client Libraries
Other Changes
- docs(storage): add
compose_fileexample by @coryan in #3177 - docs(storage): hold examples by @dbolduc in #3180
- docs(storage): add upload and download from memory examples by @suzmue in #3143
- docs(storage): update storage class by @dbolduc in #3182
- docs(storage): add kms key upload example by @suzmue in #3151
- docs(storage): add move file example by @suzmue in #3187
- docs(storage): add object get metadata example by @nvnmandadhi in #3188
- docs(storage): copy file example by @dbolduc in #3184
- fix(gax-internal): alternative endpoints for gRPC by @coryan in #3194
- docs(storage):
set_client_endpointexample by @coryan in #3198 - impl(wkt): workaround for time==0.3.42 by @coryan in #3195
- docs(storage): add sample for rotate encryption key by @suzmue in #3190
- docs(storage): object ACL samples by @dbolduc in #3201
- docs(storage): object archived generation samples by @dbolduc in #3202
- docs(storage): add sample for converting object from csek to cmek by @suzmue in #3203
- docs(storage): add retry configuration samples by @suzmue in #3205
- docs(storage): add object get kms key example by @nvnmandadhi in #3222
- docs(lros): improve style and update dependencies by @pcoet in #3223
- docs(storage): add object print acl example by @nvnmandadhi in #3227
- docs(storage): add object print acl for user example by @nvnmandadhi in #3232
- feat(wkt): conversion to/from
std::time::SystemTimeby @dbolduc in #3231 - chore: bump versions for gax-internal 0.6.0 by @coryan in #3241
- feat(Auth): Anonymous Credentials by @sai-sunder-s in #3256
- cleanup(auth): remove
test_credentials()by @coryan in #3257
New Contributors
- @nvnmandadhi made their first contribution in #3188
Full Changelog: v0.11.0...v0.12.0
v0.11.0
What's Changed
Breaking Changes
-
The Cloud Storage client library includes many changes from the 0.25.0-preview5 version. Including:
- feat(storage)!: return object on checksum mismatch by @coryan in #2871
- cleanup(storage)!: rename
download_resume_policyby @coryan in #2903 - cleanup(storage)!: move
KeyAes256by @coryan in #2905 - cleanup(storage)!: rename
upload_sourcemodule by @coryan in #2904 - cleanup(storage)!: rename
upload_object()by @coryan in #2906 - cleanup(storage)!: rename
with_*setters by @coryan in #2913 - cleanup(storage)!: rename
RecommendedPolicyby @coryan in #2916 - refactor(storage)!: move
ObjectHighlightsby @coryan in #2912 - cleanup(storage)!: ranged reads made type-safe by @coryan in #2924
- fix(storage)!: remove ChecksumEngine generic trait from the public API by @suzmue in #2907
- refactor(storage)!:
ReadObjectResponseuses pimpl by @dbolduc in #3137
-
cleanup(gax)!: group retry policy arguments by @coryan in #3007
Other announcements
-
We expect this will be the last release before 1.0.
-
feat(cloudsecuritycompliance): generate library by @coryan in #3172
Other changes
- fix(storage): heed custom polling policies by @dbolduc in #2872
- fix(storage): fewer errors abort uploads by @coryan in #2873
- fix(storage): use size in multipart payloads by @coryan in #2877
- docs(storage): more examples for buckets by @coryan in #2880
- Docs: Edited examing errors guide to make it more consistent with oth… by @pcoet in #2881
- docs(storage): bucket ACL examples by @coryan in #2883
- docs(storage): folder and manage folder examples by @coryan in #2885
- docs(storage): quickstart examples by @coryan in #2886
- docs(storage): critical object examples by @coryan in #2900
- doc(storage): document
ChecksumMismatchby @coryan in #2902 - ci: update Rust build to 1.89 by @coryan in #2908
- fix(storage): missing header when resuming uploads by @coryan in #2910
- fix(gax-internal): lazy connects for gRPC clients by @coryan in #2915
- docs(user-guide): improve binding errors section by @pcoet in #2928
- fix(storage): preconditions in single-shot uploads by @coryan in #2925
- fix(storage): correct resumable uploads threshold by @coryan in #2938
- chore: initial GEMINI.md file by @coryan in #2952
- docs(storage): default event based hold samples by @coryan in #2951
- impl(w1r3): deal with preconditions by @coryan in #2950
- refactor(storage)!: relocate
ReadObjectResponseby @dbolduc in #2942 - fix(storage): more retryable errors by @coryan in #2949
- docs(storage): public access prevention examples by @coryan in #2953
- docs(storage): lifecycle examples by @coryan in #2978
- refactor(storage): split single-shot tests by @coryan in #3005
- fix(storage): 308s are errors for single-shot uploads by @coryan in #3027
- fix: match code and minimal versions by @coryan in #3008
- impl(w1r3): configurable read count by @coryan in #3030
- docs(storage): website configuration examples by @coryan in #3029
- refactor(w1r3): duplicate code in error details by @coryan in #3031
- docs(storage): retention policy examples by @coryan in #3032
- feat(storage): implement Clone and Display for KeyAes256 and add examples for using CSEK by @suzmue in #3004
- feat(storage): better retry policy defaults by @coryan in #3124
- docs(storage): add versioning examples by @coryan in #3034
- fix(storage): correct mixin service name by @coryan in #3132
- docs(storage): add some IAM examples by @coryan in #3134
- docs(storage): add download byte range sample by @suzmue in #3127
- docs(storage): examples for anywhere cache by @coryan in #3138
- docs(storage): add autoclass examples by @coryan in #3139
- docs(storage): add file upload and download examples by @suzmue in #3140
- docs(storage): examples for CORS by @coryan in #3141
- docs(user-guide): improve list operations guide by @pcoet in #3144
- docs(generator/dart): update the generation docs for the Dart backend by @devoncarew in #3146
- docs: how to get latest librarian version by @coryan in #3147
- feat(dart): update the Dart SDK version by @devoncarew in #3150
- docs(storage): more bucket IAM examples by @coryan in #3145
- docs(storage): RPO examples by @coryan in #3148
- fix: workload identity federation service account impersonation by @fujin in #3142
- docs(storage): bucket label examples by @coryan in #3149
- feat(storage): request types for mocking by @dbolduc in #3155
- refactor(storage): Checksum as an option by @dbolduc in #3153
- docs(storage): UBLA examples by @coryan in #3152
- refactor(storage): use
WriteObjectRequestby @dbolduc in #3159 - refactor(storage): use stub for write_object by @dbolduc in #3161
- docs(storage): default object ACL examples by @coryan in #3163
- docs(storage): create bucket with object retention by @coryan in #3165
- refactor(storage): client uses transport stub by @dbolduc in #3164
- docs(storage): bucket KMS examples by @coryan in #3162
- refactor(storage): client is templated on stubs by @dbolduc in #3167
- feat(storage): fake
ReadObjectResponsefor mocks by @dbolduc in #3166 - docs(storage): implement requester pays examples by @coryan in #3170
- feat(storage): mocking by @dbolduc in #3169
- doc(storage): nits by @dbolduc in #3173
- docs(storage): documentation for write_object() by @coryan in #3174
New Contributors
Full Changelog: v0.10.0...v0.11.0
v0.10.0
What's Changed
Breaking Changes
Cloud Storage
The Cloud Storage client (still in preview) had several breaking changes as we complete the implementation and review the client library surface.
- cleanup(storage)!: merge upload errors by @coryan in #2821
- refactor(storage)!: rename
send()for uploads by @coryan in #2836 - cleanup(storage)!: reorganize errors and builders by @coryan in #2846
- feat(storage): add md5 checksum support for downloads by @suzmue in #2845
- cleanup(storage)!: change
size_hint()return type by @coryan in #2858
Other Changes
Update all libraries to match the service definitions circa 2025-08-08
- fix(storage): percent-encode name once on uploads by @coryan in #2812
- fix(storage): gRPC in recommended retry policy by @coryan in #2814
- feat(storage): expose
ReadObjecttypes by @dbolduc in #2820 - docs: error handling full code + cleanups by @pcoet in #2822
- feat: user-agent over gRPC by @dbolduc in #2840
- feat: retries by default by @dbolduc in #2843
New Contributors
- @amanda-tarafa made their first contribution in #2818
Full Changelog: v0.9.0...v0.10.0