Azure SDK for Rust (October 2025)
The Azure SDK team is pleased to announce our October 2025 client library releases.
22 packages released this month.
Beta Packages (15)
-
Core
-
Core - AMQP
-
Core - Macros
-
Core - OpenTelemetry
-
Cosmos DB
-
Event Hubs
-
EventHubs Checkpoint Store for Azure Blob Storage
-
Identity
-
Key Vault - Certificates
-
Key Vault - Keys
-
Key Vault - Secrets
-
Storage - Blobs
-
TypeSpec Client Core
-
TypeSpec Core
-
TypeSpec Core Macros
Release highlights
Core 0.29.0 Changelog
Breaking Changes
- Changed
ClientOptions::retryfromOption<RetryOptions>toRetryOptions. - Changed
DeserializeWith::deserialize_with()to be sync. - Changed
Pipeline::send()to return aResult<RawResponse>. - Changed
RawResponse::body()to return a&ResponseBodyinstead of&Bytes.ResponseBodywraps&Bytes, and implementsAsRef<[u8]>andDeref<Target = [u8]>. - Changed
RawResponse::into_body()to return aResponseBodyinstead ofBytes.ResponseBodywraps&Bytes, and implementsAsRef<[u8]>andDeref<Target = [u8]>. - Changed
RawResponse::json()fromasyncto a sync function. The body was already buffered. - Changed
RawResponse::xml()fromasyncto a sync function. The body was already buffered. - Changed
Response<T, F>to fully sync; it holds aRawResponsethat was already buffered entirely from the service so no longer needs or defines async functions. - Changed
ResponseBody::json()andxml()to borrowself. - Removed
create_extensible_enumandcreate_enummacros. - Removed
BufResponse::json(). - Removed
BufResponse::xml(). - Removed
CustomHeadersPolicyfrom public API. - Removed
ErrorKind::http_response(). Construct anErrorResponse::HttpResponsevariant instead. - Removed
ExponentialRetryPolicyfrom public API. - Removed
FixedRetryPolicyfrom public API. - Removed
LoggingPolicyfrom public API. - Removed
NoRetryPolicyfrom public API. - Removed implementation of
StreamforResponseBody. - Removed several unreferenced HTTP headers and accessor structures for those headers.
- Renamed
TransportOptions::new_custom_policy()toTransport::with_policy(). - Renamed
TransportOptionstoTransport. - Renamed a number of construction functions for
Errorto align with guidelines- Renamed
Error::full()toError::with_error(). - Renamed
Error::with_message()toError::with_message_fn(). - Renamed
Error::message()toError::with_message(). - Renamed
Error::with_context()toError::with_context_fn(). - Renamed
Error::context()toError::with_context(). - Renamed
ResultExt::map_kind()toResultExt::with_kind(). - Renamed
ResultExt::with_context()toResultExt::with_context_fn(). - Renamed
ResultExt::context()toResultExt::with_context().
- Renamed
- Replaced implementation of
From<BufResponse>forResponse<T, F>toFrom<RawResponse>. - Replaced implementation of
From<Response<T, F>>forBufResponsetoFrom<AsyncResponse<T>>.
Bugs Fixed
-
ErrorKind::HttpResponse { raw_response, .. }may have been incorrectlyNone.
Features Added
- Added
Error::with_error_fn(). - Added
AsyncResponse<T>for responses that may stream the body outside the HTTP pipeline. This replacesResponse<T, F>requiring an async read of the body that occurred outside the HTTP pipeline. - Added
http::response::BufResponseBody, which also implementsStream. - Added a
Pipeline::stream()to return aResult<BufResponse>. - Added
RawResponse::deconstruct(). - Added
ResponseBody::into_string(). - Added
ResponseBody::from_bytes(). - Added the
cloudmodule with types for configuring clients to use different Azure clouds. - Implemented
AsRef<[u8]>andDeref<Target = [u8]>forResponseBody.
Core 0.29.1 Changelog
Bugs Fixed
- Fix feature documentation (#3118)
Breaking Changes
- Removed the
azurite_workaroundfeature (unused).
Core - AMQP 0.8.0 Changelog
Breaking Changes
- Removed non-idiomatic accessor functions from
AmqpDescribed,AmqpSessionOptions,AmqpDescribedError,AmqpMessage, andAmqpTarget - Renamed the “cplusplus” feature to “ffi” because “ffi” is more idiomatic to Rust.
Core - AMQP 0.8.1 Changelog
Bugs Fixed
- Fix feature documentation (#3118)
Core - Macros 0.3.0 Changelog
Other Changes
- Updated dependencies.
Core - Macros 0.3.1 Changelog
Bugs Fixed
- Fix feature documentation (#3118)
Core - OpenTelemetry 0.3.0 Changelog
Other Changes
- Updated dependencies.
Core - OpenTelemetry 0.3.1 Changelog
Bugs Fixed
- Fix feature documentation (#3118)
Cosmos DB 0.28.0 Changelog
Features Added
- Added
Query::with_text()andQuery::append_text()methods to modify query text after creation (#3044) - Added
PatchDocument::with_condition()methods to allow setting a condition on a patch operation (#2969)
Breaking Changes
- Client methods that return a
Response<T>>asynchronously buffer the entire model within the internal pipeline, sointo_body()and other methods on the response are no longer async.
Event Hubs 0.8.0 Changelog
Breaking Changes
-
EventProcessornow consumes itsConsumerClientparameter rather than accepting a clone of anArc.
EventHubs Checkpoint Store for Azure Blob Storage 0.2.0 Changelog
Other Changes
- Updated dependencies.
Identity 0.29.0 Changelog
Breaking Changes
-
ClientCertificateCredential::new()takesOption<ClientCertificateCredentialOptions>instead ofimpl Into<ClientCertificateCredentialOptions>. - Credential constructors return an error when given a non-HTTPS authority host.
- Renamed
ClientCertificateCredential::new()parameterclient_certificate_passtoclient_certificate_password. - Replaced credential-specific
authority_hostoptions withazure_core::cloud::CloudConfigurationconfigured viaClientOptions.cloud.
Key Vault - Certificates 0.7.0 Changelog
Breaking Changes
- Client methods that return a
Response<T>>asynchronously buffer the entire model within the internal pipeline, sointo_body()and other methods on the response are no longer async. - Renamed
KeyType::ECtoKeyType::Ecto align with guidelines. - Renamed
KeyType::RSAtoKeyType::Rsato align with guidelines.
Key Vault - Keys 0.8.0 Changelog
Breaking Changes
- Client methods that return a
Response<T>>asynchronously buffer the entire model within the internal pipeline, sointo_body()and other methods on the response are no longer async. - Renamed
KeyType::ECtoKeyType::Ecto align with guidelines. - Renamed
KeyType::RSAtoKeyType::Rsato align with guidelines. - Renamed
EncryptionAlgorithm::RSA1_5toEncryptionAlgorithm::Rsa1_5to align with guidelines. - Renamed
EncryptionAlgorithm::RsaOAEP256toEncryptionAlgorithm::RsaOaep256to align with guidelines. - Renamed several variants in
SignatureAlgorithmto align with guidelines e.g.,ES256KtoEs256K.
Key Vault - Secrets 0.8.0 Changelog
Breaking Changes
- Client methods that return a
Response<T>>asynchronously buffer the entire model within the internal pipeline, sointo_body()and other methods on the response are no longer async.
Storage - Blobs 0.6.0 Changelog
Breaking Changes
- Changed
BlobClient::download()to return anAsyncResponseinstead of aResponse. This allows for streaming large payloads outside the internal HTTP pipeline. - Client methods that return a
Response<T>>asynchronously buffer the entire model within the internal pipeline, sointo_body()and other methods on the response are no longer async.
Features Added
- Added support for
existstoBlobClientandBlobContainerClient.
TypeSpec Client Core 0.8.0 Changelog
Breaking Changes
- Changed
ClientOptions::retryfromOption<RetryOptions>toRetryOptions. - Changed
DeserializeWith::deserialize_with()to be sync. - Changed
Pipeline::send()to return aResult<RawResponse>. - Changed
RawResponse::body()to return a&ResponseBodyinstead of&Bytes.ResponseBodywraps&Bytes, and implementsAsRef<[u8]>andDeref<Target = [u8]>. - Changed
RawResponse::into_body()to return aResponseBodyinstead ofBytes.ResponseBodywraps&Bytes, and implementsAsRef<[u8]>andDeref<Target = [u8]>. - Changed
RawResponse::json()fromasyncto a sync function. The body was already buffered. - Changed
RawResponse::xml()fromasyncto a sync function. The body was already buffered. - Changed
Response<T, F>to fully sync; it holds aRawResponsethat was already buffered entirely from the service so no longer needs or defines async functions. - Changed
ResponseBody::json()andxml()to borrowself. - Removed
create_extensible_enumandcreate_enummacros. - Removed
BufResponse::json(). - Removed
BufResponse::xml(). - Removed
CustomHeadersPolicyfrom public API. - Removed
ErrorKind::http_response(). Construct anErrorResponse::HttpResponsevariant instead. - Removed
ExponentialRetryPolicyfrom public API. - Removed
FixedRetryPolicyfrom public API. - Removed
LoggingPolicyfrom public API. - Removed
NoRetryPolicyfrom public API. - Removed implementation of
StreamforResponseBody. - Renamed
TransportOptions::new_custom_policy()toTransport::with_policy(). - Renamed
TransportOptionstoTransport. - Renamed a number of construction functions for
Errorto align with guidelines- Renamed
Error::full()toError::with_error(). - Renamed
Error::with_message()toError::with_message_fn(). - Renamed
Error::message()toError::with_message(). - Renamed
Error::with_context()toError::with_context_fn(). - Renamed
Error::context()toError::with_context(). - Renamed
ResultExt::map_kind()toResultExt::with_kind(). - Renamed
ResultExt::with_context()toResultExt::with_context_fn(). - Renamed
ResultExt::context()toResultExt::with_context().
- Renamed
- Replaced implementation of
From<BufResponse>forResponse<T, F>toFrom<RawResponse>. - Replaced implementation of
From<Response<T, F>>forBufResponsetoFrom<AsyncResponse<T>>.
Features Added
- Added
AsyncResponse<T>for responses that may stream the body outside the HTTP pipeline. This replacesResponse<T, F>requiring an async read of the body that occurred outside the HTTP pipeline. - Added
Error::with_error_fn(). - Added
http::response::BufResponseBody, which also implementsStream. - Added
RawResponse::deconstruct(). - Added
ResponseBody::into_string(). - Added
ResponseBody::from_bytes(). - Added a
Pipeline::stream()to return aResult<BufResponse>. - Implemented
AsRef<[u8]>andDeref<Target = [u8]>forResponseBody.
TypeSpec Client Core 0.8.1 Changelog
Bugs Fixed
- Fix feature documentation (#3118)
TypeSpec Core 0.9.0 Changelog
Breaking Changes
- Changed
RawResponse::body()to return a&ResponseBodyinstead of&Bytes.ResponseBodywraps&Bytes, and implementsAsRef<[u8]>andDeref<Target = [u8]>. - Changed
RawResponse::into_body()to return aResponseBodyinstead ofBytes.ResponseBodywraps&Bytes, and implementsAsRef<[u8]>andDeref<Target = [u8]>. - Changed
RawResponse::json()fromasyncto a sync function. The body was already buffered. - Changed
RawResponse::xml()fromasyncto a sync function. The body was already buffered. - Moved
AsHeaders,FromHeaders,Header,Headers,HeaderName, andHeaderValuetohttp::headersmodule to align withtypespec_client_core. - Removed
ErrorKind::http_response(). Construct anErrorResponse::HttpResponsevariant instead. - Renamed a number of construction functions for
Errorto align with guidelines- Renamed
Error::full()toError::with_error(). - Renamed
Error::with_message()toError::with_message_fn(). - Renamed
Error::message()toError::with_message(). - Renamed
Error::with_context()toError::with_context_fn(). - Renamed
Error::context()toError::with_context(). - Renamed
ResultExt::map_kind()toResultExt::with_kind(). - Renamed
ResultExt::with_context()toResultExt::with_context_fn(). - Renamed
ResultExt::context()toResultExt::with_context().
- Renamed
Features Added
- Added
Error::with_error_fn(). - Added
http::response::ResponseBody. - Added
RawResponse::deconstruct(). - Added
ResponseBody::from_bytes().
TypeSpec Core 0.9.1 Changelog
Bugs Fixed
- Fix feature documentation (#3118)
TypeSpec Core Macros 0.8.0 Changelog
Breaking Changes
- Renamed a number of construction functions for
Errorto align with guidelines- Renamed
Error::full()toError::with_error(). - Renamed
Error::with_message()toError::with_message_fn(). - Renamed
Error::message()toError::with_message(). - Renamed
Error::with_context()toError::with_context_fn(). - Renamed
Error::context()toError::with_context(). - Renamed
ResultExt::map_kind()toResultExt::with_kind(). - Renamed
ResultExt::with_context()toResultExt::with_context_fn(). - Renamed
ResultExt::context()toResultExt::with_context().
- Renamed
Features Added
- Added
Error::with_error_fn().
TypeSpec Core Macros 0.8.1 Changelog
Bugs Fixed
- Fix feature documentation (#3118)
Latest Releases
View all the latest versions of Rust crates here.
Installation Instructions
To install any of our crates, copy and paste the following commands into a terminal:
$> cargo add azure_core@0.29.0
$> cargo add azure_core@0.29.1
$> cargo add azure_core_amqp@0.8.0
$> cargo add azure_core_amqp@0.8.1
$> cargo add azure_core_macros@0.3.0
$> cargo add azure_core_macros@0.3.1
$> cargo add azure_core_opentelemetry@0.3.0
$> cargo add azure_core_opentelemetry@0.3.1
$> cargo add azure_data_cosmos@0.28.0
$> cargo add azure_identity@0.29.0
$> cargo add azure_messaging_eventhubs@0.8.0
$> cargo add azure_messaging_eventhubs_checkpointstore_blob@0.2.0
$> cargo add azure_security_keyvault_certificates@0.7.0
$> cargo add azure_security_keyvault_keys@0.8.0
$> cargo add azure_security_keyvault_secrets@0.8.0
$> cargo add azure_storage_blob@0.6.0
$> cargo add typespec@0.9.0
$> cargo add typespec@0.9.1
$> cargo add typespec_client_core@0.8.0
$> cargo add typespec_client_core@0.8.1
$> cargo add typespec_macros@0.8.0
$> cargo add typespec_macros@0.8.1
Feedback
If you have a bug or feature request for one of the libraries, please post an issue to GitHub.