Releases: googleapis/google-cloud-rust
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
v0.9.0
What's Changed
General
- We wrote down our MSRV, and our policy to update the MSRV: #2728
- The implementation of
std::fmt::Debughides the_unknown_fieldsmap 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()andread_object()are nowSendand'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
- cleanup(auth)!: update retry loop by @harkamaljot in #2706
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
v0.7.0
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
- docs: more prerequisites to set up development environment by @pcoet in #2503
- fix(auth): Implement Debug Trait for TokenCache by @sai-sunder-s in #2511
- docs: minor fixes to setup guide by @pcoet in #2526
- feat: binding validation in some services by @dbolduc in #2530
- feat: binding errors + full path support by @dbolduc in #2532
- feat: Support Service Account Impersonation for External Accounts by @sai-sunder-s in #2538
- docs: updates to cloud shell guide by @pcoet in #2543
- docs: explain binding errors by @dbolduc in #2545
- feat(auth): Add ProgrammaticSourcedCredentials by @harkamaljot in #2541
- docs: clarify which project in setup guide by @dbolduc in #2555
- docs: made minor style changes and added some clarifying content by @pcoet in #2563
- feat(auth): Enable impersonation in ProgrammaticBuilder by @harkamaljot in #2565
- feat(auth): Add RetryTokenProvider wrapper by @harkamaljot in #2605
- feat(auth): add support for file sourced credentials by @alvarowolfx in #2609
- fix(auth): Implement framework for Auth Request metric headers and use in impersonated creds by @sai-sunder-s in #2644
- feat(auth): Allow custom retry policy for mds by @harkamaljot in #2629
- feat: full error details over gRPC by @dbolduc in #2673
- docs: style fixes to Vertex guide by @pcoet in #2678
- fix(auth): Add documentation for external accounts and unhide module documentation. by @sai-sunder-s in #2651
- feat(auth): Allow custom retry policy for user by @harkamaljot in #2659
- docs: update maintenance guide by @coryan in #2681
- feat(auth): add retry for external cred by @harkamaljot in #2699
- feat(auth): add retry for impersonated cred by @harkamaljot in #2688
- feat(lro):
into_stream()isUnpinby @dbolduc in #2702
New Contributors
- @pcoet made their first contribution in #2503
- @whuffman36 made their first contribution in #2576
- @varun-doshi made their first contribution in #2631
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
- We stabilized the APIs for all client libraries. This required a number of breaking changes.
- Our serialization and deserialization code now passes the ProtoJSON conformance tests.
- For the most part this required accepting a number of messages that may be generated by other ProtoJSON implementations, but not by Google Cloud.
- We ran a test performing over 1 billion calls to GCP without errors, leaks, or crashes.
- The
gax::error::Errortype is stabilized and supports adding new kinds of errors without breaking applications.- We introduced specific error types where needed.
- To query the error "kind" you can use predicates on the error, such as
err.is_timeout() - We included troubleshooting guides with each error kind.
- The auth library gained support for service account impersonation.
- The auth library is gaining support for workload identity federation.
- We disabled the default features in all our dependencies and only enable the features we use.
- A number of new libraries.
- feat(dataform): generate library by @suzmue in #2176
- feat(cloudquotas/v1): generate library by @coryan in #2258
- feat(managedkafka/v1): generate library by @coryan in #2449
- feat(devicestreaming): generate library by @coryan in #2500
- feat(storagebatchoperations/v1): enable publication by @coryan in #2502
- cleanup!: errors do not need to be
PartialEqby @coryan in #2158 - docs: improve request builder examples by @coryan in #2143
- feat!: split setters for optional fields by @coryan in #2157
- cleanup!: do not re-export
lro::Pollerby @coryan in #2164 - doc(wkt): improve docs for
Structand friends by @coryan in #2169 - fix(wkt)!: preserve sources of errors by @coryan in #2168
- docs(wkt): add more examples by @coryan in #2170
- docs(wkt): call out feature flags in
Durationby @dbolduc in #2179 - feat(wkt)!:
Timestampcan implementCopyby @coryan in #2190 - feat(wkt)!:
Durationcan implementCopyby @coryan in #2189 - feat!: make errors
#[non_exhaustive]by @coryan in #2191 - feat(wkt): implement
TryFrom<&String>by @coryan in #2188 - cleanup(wkt)!: rename
Any::functions by @coryan in #2196 - cleanup!: better mapping for enum value names by @coryan in #2192
- cleanup(wkt)!:
Timestampalways serialize by @coryan in #2195 - docs(gax): improve some examples by @coryan in #2207
- cleanup(deps)!: disable default features by @coryan in #2225
- cleanup(gax)!: use builder for
ServiceErrorby @coryan in #2227 - cleanup(gax)!: use
HeaderMapfor headers by @coryan in #2229 - docs(gax)!: hide policy functions by @coryan in #2241
- fix(auth): Improve Error Msg when no MDS is present by @sai-sunder-s in #2187
- fix(auth): allow token exchange without auth info by @alvarowolfx in #2218
- docs: fix typos in README document by @chrischiedo in #2257
- fix(gax): correct
source()inCredentialsErrorby @coryan in #2268 - cleanup(auth)!: separate type for build errors by @coryan in #2264
- fix(gax): handle unknown error details by @coryan in #2271
- feat!: use
gax::client_builder::Errorby @coryan in #2281 - cleanup(gax)!: split policy error types by @coryan in #2265
- cleanup(gax)!: hide
CredentialsErrordetails by @coryan in #2290 - cleanup(gax)!: new error type by @coryan in #2267
- feat: different error kind for timeouts by @coryan in #2301
- feat(auth): Enable quota project setting via env variable by @harkamaljot in #2304
- feat(auth): add external account for workload identity federation by @alvarowolfx in #2294
- docs(gax): improve
Errordocumentation by @coryan in #2329 - docs: avoid private functions in user guide by @coryan in #2332
- feat: new error kind for deserialization by @coryan in #2331
- impl(generator/rust): support
boolkeys in maps by @coryan in #2345 - feat(gax): new error kind for serialization by @coryan in #2336
- feat(auth): handle external account from credentials builder by @alvarowolfx in #2319
- fix(wkt):
FieldMaskserialization by @coryan in #2348 - refactor(gax): capture prev error in retry loop by @dbolduc in #2351
- fix(gax): do not sleep past overall timeout by @dbolduc in #2353
- docs: improve LRO policy guide by @coryan in #2333
- impl(wkt): better validation for
Anyby @coryan in #2359 - cleanup(generator/rust): use
Error::ser()by @coryan in #2358 - impl(wkt): parse floats from strings by @coryan in #2344
- feat(auth): add support for executable sourced credentials by @alvarowolfx in #2356
- fix(auth): exec source cred not being detected properly by @alvarowolfx in #2420
- feat(gax): error kind for exhausted policies by @coryan in #2424
- feat: split libraries with more than 15 clients by @coryan in #2444
- feat(auth): Impersonated Service Account Credentials by @sai-sunder-s in #2452
- feat(gax): introduce
BindingErrorby @dbolduc in #2487 - feat(gax)!: preserve retry loop errors by @coryan in #2456
- refactor!: rename
gax::loop_state::LoopStateby @coryan in #2498
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
Breaking Changes
-
Protobuf enumerations are mapped to Rust enumerations.
- Implemented over several PRs, mainly #1953
-
The google-cloud-aiplatform-v1 crate gained features to select only a subset of the many clients in this crate.
- Implemented over many PRs, including #1878
-
Most client methods lost the (so far required) path parameters, they must all be set on the request builder returned by these methods using
.set_${field_name}(..).- The rationale is that many methods can use different fields to build the path parameter and can gain new fields like this over time.
- Effectively we are trading-off compile-time errors for run-time errors but with more flexible evolution (and more features) for the services.
- The current run-time errors are fairly minimal, we are planning to improve them in future releases.
-
cleanup(gax)!: hide default idempotency in
RequestOptionsby @dbolduc in #1877 -
cleanup(wkt)!: remove unused
DurationErrorby @dbolduc in #1900 -
refactor(auth)!: replace create_access_token_credential with builder by @harkamaljot in #1903
-
refactor(auth)!: rename CredentialsTrait to CredentialsProvider by @harkamaljot in #1909
-
cleanup(wkt)!: hide message serialize fns by @dbolduc in #1917
-
cleanup!: consistent naming style for features by @coryan in #2024
-
cleanup!: remove
unstable-sdk-clientfeature by @coryan in #2025 -
feat(auth)!: update token and header interface by @harkamaljot in #2034
-
refactor(auth)!: replace create_api_key_credentials with builder by @chrischiedo in #2084
-
fix(auth)!: Single method in Service Account Builder for scopes and audience by @sai-sunder-s in #2089
-
impl(generator/rust)!: prepare to support additional bindings by @coryan in #2114
-
refactor(auth)!: Remove token method credential provider by @harkamaljot in #2131
-
fix(auth)!: Make Token struct pub(crate) since it is not exposed in a public surface by @sai-sunder-s in #2142
-
feat(lro): convert
wkt::Emptyto unit type by @coryan in #2031 -
feat(generator/rust): LROs with unit types by @coryan in #2062
-
fix(auth): Hide testing mod from public documentation by @sai-sunder-s in #2083
-
docs: prefer
# Parametersin rustdoc comments by @coryan in #1817 -
docs: fix typos in user guide by @chrischiedo in #1823
-
docs: add speech-to-text api to set up dev instructions by @suzmue in #1827
-
feat(auth): support non-default access token credentials by @harkamaljot in #1797
-
cleanup(gaxi): switch from
builttorustc_versionby @davidbarsky in #1875 -
fix(auth): remove trailing slash from Metadata root by @harkamaljot in #1886
-
docs: add user guide section on Vertex AI by @coryan in #1902
-
feat(gax): return default value for struct for 204 NoContent responses by @alvarowolfx in #1913
-
feat(generator/rust): document required setters by @coryan in #1965
-
docs: user guide for paginated operations by @PhongChuong in #1830
-
docs: add explicit dep to the guides by @PhongChuong in #1974
-
test: skip serializing default values in wkt tests by @suzmue in #1976
-
docs: write and link user guide for enumerations by @coryan in #1982
-
feat(generator/rust): use deprecation attributes by @coryan in #1983
-
fix: support nan, inf and -inf serde for f32 in generated code by @suzmue in #1979
-
docs: add instruction for integration test tracing by @PhongChuong in #2004
-
fix: use custom serde for doubles in generated code by @suzmue in #2008
-
feat(auth): Introduce GCE_METADATA_HOST env var to set the metadata server host by @sai-sunder-s in #2005
-
fix(sql/v1): add crate to top-level workspace by @coryan in #2018
-
fix: POST and PUT requests with empty bodies by @coryan in #2017
-
docs: document features and internal modules by @coryan in #2026
-
docs(gax):
PaginatorandItemPaginatorsamples by @coryan in #2029 -
feat(auth): optimize common path for MDS by @coryan in #2033
-
fix: add attributes for oneof variants in generated code by @suzmue in #2030
-
test: update map oneof test to include serde attribute by @suzmue in #2060
-
docs: add instructions for adding google-cloud-gax crate by @suzmue in #2109
-
docs: add google-cloud-gax instructions to cloud shell by @suzmue in #2112
-
feat(generator): add paginator support for legacy services with maxResults field name by @PhongChuong in #2115
-
feat(generator/rust): request builder get examples by @coryan in #2130
-
fix(generator): create files without execute bits by @coryan in #2133
-
feat: telemetry includes REST vs. gRPC fields by @coryan in #2135
-
docs(gax): more readable type names for
*Paginatorby @coryan in #2141 -
fix(lro): cannot use workspace for self dependency by @coryan in #2144
New Contributors
- @suzmue made their first contribution in #1827
- @dhvll made their first contribution in #1860
- @davidbarsky made their first contribution in #1875
- @PhongChuong made their first contribution in #1887
- @alvarowolfx made their first contribution in https://githu...
v0.4.0
What's Changed
Breaking Changes
There were a number of breaking changes. Many were simple renames of functions. The most interesting were:
- Clients are now constructed by using a builder pattern. See How to initialize a client for the updated pattern.
- Many types not intended to be public were moved into either the
google-cloud-gax-internalcrate, or into amod internal. These types are not part of the public API. They may change or be removed without notice, and we will not consider it a breaking change going forward.
- impl(auth)!: ring for default crypto provider by @dbolduc in #1492
- feat(gax)!: stable paginator by @dbolduc in #1466
- cleanup!: remove 'unstable-stream' feature from clients by @dbolduc in #1499
- refactor!: move
ReqwestClientby @coryan in #1497 - refactor!: move param helpers to
g-c-http-clientby @coryan in #1507 - cleanup(wkt)!: hide
wkt::generatedmodule by @dbolduc in #1589 - cleanup!: hide request builder impls by @dbolduc in #1605
- refactor!: rename polling policy by @coryan in #1608
- cleanup!: use new name for
PollingErrorPolicyby @coryan in #1614 - cleanup!: remove
PollingPolicyvestiges by @coryan in #1610 - cleanup(gax)!:
ClientConfigdoes not need to clear options by @dbolduc in #1625 - feat!: return unit type instead of
wkt::Emptyby @coryan in #1635 - cleanup(gax)!: seal
RequestOptionsBuilder; hideRequestBuilderby @dbolduc in #1637 - cleanup(gax)!: rename paginator to stream by @dbolduc in #1611
- feat!: use builder to create all clients by @coryan in #1649
- cleanup!: hide
PageableResponsetrait by @dbolduc in #1666 - cleanup(auth)!: remove unused type by @coryan in #1697
- fix(auth)!: Rename CredentialTrait to CredentialsTrait and UserCredential to UserCredentials by @sai-sunder-s in #1704
- fix(auth)!: Rename the public Credential Struct to Credentials by @sai-sunder-s in #1707
- fix(auth)!: Rename create_access_token_credential to create_access_token_credentials by @sai-sunder-s in #1711
- fix(auth)!: Rename ServiceAccountCredential and MDSCredential by @sai-sunder-s in #1712
- fix(auth)!: Rename CredentialError to CredentialsError by @sai-sunder-s in #1713
- fix(auth)!: Rename get_universe_domain to universe_domain by @sai-sunder-s in #1721
- fix(auth)!: rename get_headers to headers by @sai-sunder-s in #1720
- fix(auth)!: Rename get_token to token by @sai-sunder-s in #1729
- cleanup(gax)!: prefer "CANCELLED" by @dbolduc in #1736
- cleanup(gax)!:
Paginatoras a trait by @dbolduc in #1737 - cleanup(lro)!: prefer into_stream by @dbolduc in #1742
- cleanup!: shorten oneof accessors by @dbolduc in #1803
Normal Changes
- fix(generator/rust): enum default values by @coryan in #1363
- doc(auth): clarify
Noneexpiration by @dbolduc in #1373 - feat(auth): API Key credentials by @dbolduc in #1372
- feat(generator/rust): enums with bad defaults by @coryan in #1389
- feat(wkt): add
DescriptorProtoby @coryan in #1390 - feat(wkt): implement
NullValueby @coryan in #1388 - feat(financialservices): generate library by @dbolduc in #1396
- fix(wkt): no trailing zeroes in duration as JSON by @coryan in #1400
- feat(wkt): easier to set paths in
FieldMaskby @coryan in #1413 - fix(auth): feature gate aws_lc_rs from rustls by @Sh4d1 in #1359
- feat(wkt): add
type_url()toAnyby @coryan in #1419 - feat(parametermanager/v1): generate library by @coryan in #1423
- feat(wkt): convert to Prost's version of the WKT by @coryan in #1420
- fix(generator/rust): name conflicts for
bytesby @coryan in #1428 - feat(generator): separate unique enum values by @coryan in #1435
- docs: start architecture document by @coryan in #1449
- fix(firestore): include in default workspace members by @coryan in #1450
- feat(generator/rust)!: use integers for enums by @coryan in #1448
- fix(auth): Read token_uri from user json by @sai-sunder-s in #1430
- feat(wkt):
NullValuebehaves like enums by @coryan in #1485 - docs(gax): include streaming APIs by @dbolduc in #1487
- docs(wkt): time and chrono conversions by @dbolduc in #1488
- docs(lro): to_stream methods by @dbolduc in #1508
- feat(bigquery/admin/v2): generate library by @coryan in #1540
- feat(generator): support empty return types by @coryan in #1591
- feat(auth): support non-default MDS credentials by @harkamaljot in #1472
- feat(generator/rust): full transport and client for gRPC by @coryan in #1597
- feat(generator/rust): modules link their message by @coryan in #1606
- feat(auth): introduce caching for user credentials by @sai-sunder-s in #1607
- feat(auth): Integrate service account with token cache by @sai-sunder-s in #1628
- feat(auth): integrate mds cred with token cache by @sai-sunder-s in #1629
- fix(wkt): non-negative timestamp nanos by @coryan in #1634
- docs: user-guide section on retry policies by @coryan in #1657
- docs: user-guide section on mocking by @dbolduc in #1659
- docs: user guide on error handling by @coryan in #1670
- feat(storagebatchoperations): generate library by @dbolduc in #1676
- fix(gax): deserialize error details by @coryan in #1680
- docs: link client call in builder by @dbolduc in #1678
- docs: mocking errors by @dbolduc in #1683
- docs(user-guide): how to examine error details by @coryan in #1685
- feat(gax): new type to represent credential errors by @coryan in #1688
- feat(auth): support non-default Service account credentials by @harkamaljot in #1660
- fix(auth): Updating ApiKeyCredential to ApiKeyCredentials by @sai-sunder-s in #1706
- cleanup: pagination tests by @dbolduc in #1703
- impl(gax-credentials): retry loop in
grpc::Clientby @coryan in #1708 - docs: user guide for testing LROs by @dbolduc in #1695
- docs: fix typos in architecture document by @chrischiedo in #1723
- feat(licensemanager/v1): generate library by @coryan in #1730
- feat(chronicle)...