Skip to content

Releases: googleapis/google-cloud-rust

2025-11-11

12 Nov 15:22
467f409

Choose a tag to compare

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

Full Changelog: release-20251024...release-20251111

2025-10-24

24 Oct 17:11
4de2930

Choose a tag to compare

New Libraries

  • We have completed the implementation of the Compute API.

What's Changed

Full Changelog: release-20251007...release-20251024

2025-10-07

08 Oct 17:06
149be44

Choose a tag to compare

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> and Vec<Facet>.
    • Our code generator incorrectly used the Facet as the items for search().by_items() and search_lite().by_items().
    • The current type is (naturally) SearchResult.
  • We also fixed a similar problem in google-cloud-retail-v2:
    • search() also returns pages with both SearchResult and Facet lists, and the by_items() helper used the Facet whereas SearchResult is the correct element to turn into items.

New Libraries

What's Changed

  • Refactor most trait implementations out of the model.rs files.

    • 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 StorageControl client 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).
  • docs(storage): make public example by @suzmue in #3314

  • test(storage): run UBLA-disabled samples by @dbolduc in #3324

  • docs(storage): object retention sample by @dbolduc in #3326

  • 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

  • fix: support locational endpoints by @dbolduc in #3402

  • docs: Adds setter samples for maps and repeated fields by @amanda-tarafa in #3409

  • docs(storage): nicer landing page by @dbolduc in #3421

  • fix: paginated response items by @coryan in #3431

  • fix(storage): respect locational endpoints by @dbolduc in #3445

New Contributors

Full Changelog: v1.0.0...v1.1.0

v1.0.0

09 Sep 12:53
e9b4038

Choose a tag to compare

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.

Full Changelog: v0.12.0...v1.0.0

Footnotes

  1. Also known as workload identify federation or "bring your own id".

v0.12.0

06 Sep 02:32
77183b3

Choose a tag to compare

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

  • feat(gkerecommender/v1): generate library by @coryan in #3197

Other Changes

New Contributors

Full Changelog: v0.11.0...v0.12.0

v0.11.0

29 Aug 00:24
f23d269

Choose a tag to compare

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_policy by @coryan in #2903
    • cleanup(storage)!: move KeyAes256 by @coryan in #2905
    • cleanup(storage)!: rename upload_source module 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 RecommendedPolicy by @coryan in #2916
    • refactor(storage)!: move ObjectHighlights by @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)!: ReadObjectResponse uses 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 ChecksumMismatch by @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 ReadObjectResponse by @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 WriteObjectRequest by @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 ReadObjectResponse for 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

11 Aug 23:21
bdf9ccb

Choose a tag to compare

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

New Contributors

Full Changelog: v0.9.0...v0.10.0

v0.9.0

01 Aug 22:57
b03a2ab

Choose a tag to compare

What's Changed

General

  • We wrote down our MSRV, and our policy to update the MSRV: #2728
  • The implementation of std::fmt::Debug hides the _unknown_fields map if it is empty. The map is empty most of the time, and it is distracting to see in the debug output for nested messages.

Storage

This is the 0.25.0-preview4 release of the Cloud Storage Rust client. This preview includes breaking changes from 0.25.0-preview3, and we expect more breaking changes before GA.

Breaking Changes

  • We removed all_bytes() helper. This used to copy all the bytes into a single buffer. This is dangerous (the download may consume up to 5TiB of RAM, or maybe double this in some cases), and misleading (the data copy was not obvious). We are planning to restore the function with maybe a different signature.
  • size_hint() is now async.

Updates

  • Full downloads verify the checksum (CRC32C) of the received data vs. the checksum reported by the service.
    Downloads capture some metadata information about the object, such as its size, generation, and checksums.
  • A download from the service does not include all the information, but it is often enough to avoid a separate RPC.
  • read_object() will retry downloads that fail to start due to transient errors. It will also resume downloads that are interrupted after they successfully start.
  • upload_object() will retry uploads that fail due to transient errors.
  • upload_object() will verify the checksum returned by the service against the checksum computed from the data.
  • If the checksum is known, the application can set them as part of the upload_object() configuration. In this case the checksum is sent when the upload starts, and the service will verify the checksum before finalizing the upload.
  • If the data source supports Seek, the application can make a pass over the data to precompute the data checksums. In this case, the checksum is sent when the upload starts, and the service will verify the checksum before finalizing the upload.
  • upload_object() also supports the same functionality for MD5 hashes. However, these are slow and we do not recommend you use them unless they are known ahead of time.
  • The futures returned by upload_object() and read_object() are now Send and 'static, making them easier to use in your own code. Sorry we missed that.
  • Error messages for admin requests with missing information (such as the target bucket name) are much improved.
  • Applications can configure the size threshold that switches from single-shot to resumable uploads.
  • impl(storage): make upload buffer size configurable by @coryan in #2718
  • impl(storage): better upload for tokio files by @coryan in #2724
  • feat(storage): local binding errors for bad requests by @dbolduc in #2763
  • fix(storage): return correct errors in uploads by @coryan in #2769
  • feat(storage): add method to retrieve object metadata by @suzmue in #2685
  • feat(storage): upload idempotency option by @coryan in #2793

Auth

New Libraries

  • feat(cloud/bigquery/datapolicies/v2): generate library by @coryan in #2737
  • feat(configdelivery/v1): generate library by @coryan in #2738

Documentation and User Guide

  • docs: clarifications and fixes in retry guide by @pcoet in #2742
  • docs(user-guide): improve enum examples by @coryan in #2768
  • docs(guide): quickstart for Cloud Storage clients by @coryan in #2729
  • docs(storage): tutorial on using a queue by @coryan in #2756
  • docs(storage): add rewrite object guide by @dbolduc in #2767
  • docs(storage): show how to terminate uploads by @coryan in #2772
  • docs(storage): user guide for striped downloads by @coryan in #2770
  • docs: user guide for updating a resource by @pcoet in #2784

Full Changelog: v0.8.0...v0.9.0

v0.8.0

18 Jul 01:46
326d0d7

Choose a tag to compare

What's Changed

  • Document generation for docs.rs failed in v0.7.0: docs.rs uses nightly and our code failed to compile with that version.
  • fix(wkt): no private types in public traits by @dbolduc in #2711

Full Changelog: v0.7.0...v0.8.0

v0.7.0

17 Jul 02:00
aef399f

Choose a tag to compare

What's Changed

Breaking Changes

  • fix(auth)!: Remove option for loading any credential type from json by @sai-sunder-s in #2647

Other Notable Changes

  • A preview of the Google Cloud Storage client library.
  • Update all client libraries to the service definitions as of 2025-07-15.
  • feat(managedkafka/schemaregistry): generate library by @whuffman36 in #2576

More Details

New Contributors

Full Changelog: v0.6.0...v0.7.0