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::retry
fromOption<RetryOptions>
toRetryOptions
. - Changed
DeserializeWith::deserialize_with()
to be sync. - Changed
Pipeline::send()
to return aResult<RawResponse>
. - Changed
RawResponse::body()
to return a&ResponseBody
instead of&Bytes
.ResponseBody
wraps&Bytes
, and implementsAsRef<[u8]>
andDeref<Target = [u8]>
. - Changed
RawResponse::into_body()
to return aResponseBody
instead ofBytes
.ResponseBody
wraps&Bytes
, and implementsAsRef<[u8]>
andDeref<Target = [u8]>
. - Changed
RawResponse::json()
fromasync
to a sync function. The body was already buffered. - Changed
RawResponse::xml()
fromasync
to a sync function. The body was already buffered. - Changed
Response<T, F>
to fully sync; it holds aRawResponse
that was already buffered entirely from the service so no longer needs or defines async functions. - Changed
ResponseBody::json()
andxml()
to borrowself
. - Removed
create_extensible_enum
andcreate_enum
macros. - Removed
BufResponse::json()
. - Removed
BufResponse::xml()
. - Removed
CustomHeadersPolicy
from public API. - Removed
ErrorKind::http_response()
. Construct anErrorResponse::HttpResponse
variant instead. - Removed
ExponentialRetryPolicy
from public API. - Removed
FixedRetryPolicy
from public API. - Removed
LoggingPolicy
from public API. - Removed
NoRetryPolicy
from public API. - Removed implementation of
Stream
forResponseBody
. - Removed several unreferenced HTTP headers and accessor structures for those headers.
- Renamed
TransportOptions::new_custom_policy()
toTransport::with_policy()
. - Renamed
TransportOptions
toTransport
. - Renamed a number of construction functions for
Error
to 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>>
forBufResponse
toFrom<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
cloud
module 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_workaround
feature (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
-
EventProcessor
now consumes itsConsumerClient
parameter 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_pass
toclient_certificate_password
. - Replaced credential-specific
authority_host
options withazure_core::cloud::CloudConfiguration
configured 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::EC
toKeyType::Ec
to align with guidelines. - Renamed
KeyType::RSA
toKeyType::Rsa
to 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::EC
toKeyType::Ec
to align with guidelines. - Renamed
KeyType::RSA
toKeyType::Rsa
to align with guidelines. - Renamed
EncryptionAlgorithm::RSA1_5
toEncryptionAlgorithm::Rsa1_5
to align with guidelines. - Renamed
EncryptionAlgorithm::RsaOAEP256
toEncryptionAlgorithm::RsaOaep256
to align with guidelines. - Renamed several variants in
SignatureAlgorithm
to align with guidelines e.g.,ES256K
toEs256K
.
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 anAsyncResponse
instead 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
exists
toBlobClient
andBlobContainerClient
.
TypeSpec Client Core 0.8.0 Changelog
Breaking Changes
- Changed
ClientOptions::retry
fromOption<RetryOptions>
toRetryOptions
. - Changed
DeserializeWith::deserialize_with()
to be sync. - Changed
Pipeline::send()
to return aResult<RawResponse>
. - Changed
RawResponse::body()
to return a&ResponseBody
instead of&Bytes
.ResponseBody
wraps&Bytes
, and implementsAsRef<[u8]>
andDeref<Target = [u8]>
. - Changed
RawResponse::into_body()
to return aResponseBody
instead ofBytes
.ResponseBody
wraps&Bytes
, and implementsAsRef<[u8]>
andDeref<Target = [u8]>
. - Changed
RawResponse::json()
fromasync
to a sync function. The body was already buffered. - Changed
RawResponse::xml()
fromasync
to a sync function. The body was already buffered. - Changed
Response<T, F>
to fully sync; it holds aRawResponse
that was already buffered entirely from the service so no longer needs or defines async functions. - Changed
ResponseBody::json()
andxml()
to borrowself
. - Removed
create_extensible_enum
andcreate_enum
macros. - Removed
BufResponse::json()
. - Removed
BufResponse::xml()
. - Removed
CustomHeadersPolicy
from public API. - Removed
ErrorKind::http_response()
. Construct anErrorResponse::HttpResponse
variant instead. - Removed
ExponentialRetryPolicy
from public API. - Removed
FixedRetryPolicy
from public API. - Removed
LoggingPolicy
from public API. - Removed
NoRetryPolicy
from public API. - Removed implementation of
Stream
forResponseBody
. - Renamed
TransportOptions::new_custom_policy()
toTransport::with_policy()
. - Renamed
TransportOptions
toTransport
. - Renamed a number of construction functions for
Error
to 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>>
forBufResponse
toFrom<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&ResponseBody
instead of&Bytes
.ResponseBody
wraps&Bytes
, and implementsAsRef<[u8]>
andDeref<Target = [u8]>
. - Changed
RawResponse::into_body()
to return aResponseBody
instead ofBytes
.ResponseBody
wraps&Bytes
, and implementsAsRef<[u8]>
andDeref<Target = [u8]>
. - Changed
RawResponse::json()
fromasync
to a sync function. The body was already buffered. - Changed
RawResponse::xml()
fromasync
to a sync function. The body was already buffered. - Moved
AsHeaders
,FromHeaders
,Header
,Headers
,HeaderName
, andHeaderValue
tohttp::headers
module to align withtypespec_client_core
. - Removed
ErrorKind::http_response()
. Construct anErrorResponse::HttpResponse
variant instead. - Renamed a number of construction functions for
Error
to 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
Error
to 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.