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 from Option<RetryOptions> to RetryOptions.
  • Changed DeserializeWith::deserialize_with() to be sync.
  • Changed Pipeline::send() to return a Result<RawResponse>.
  • Changed RawResponse::body() to return a &ResponseBody instead of &Bytes. ResponseBody wraps &Bytes, and implements AsRef<[u8]> and Deref<Target = [u8]>.
  • Changed RawResponse::into_body() to return a ResponseBody instead of Bytes. ResponseBody wraps &Bytes, and implements AsRef<[u8]> and Deref<Target = [u8]>.
  • Changed RawResponse::json() from async to a sync function. The body was already buffered.
  • Changed RawResponse::xml() from async to a sync function. The body was already buffered.
  • Changed Response<T, F> to fully sync; it holds a RawResponse that was already buffered entirely from the service so no longer needs or defines async functions.
  • Changed ResponseBody::json() and xml() to borrow self.
  • Removed create_extensible_enum and create_enum macros.
  • Removed BufResponse::json().
  • Removed BufResponse::xml().
  • Removed CustomHeadersPolicy from public API.
  • Removed ErrorKind::http_response(). Construct an ErrorResponse::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 for ResponseBody.
  • Removed several unreferenced HTTP headers and accessor structures for those headers.
  • Renamed TransportOptions::new_custom_policy() to Transport::with_policy().
  • Renamed TransportOptions to Transport.
  • Renamed a number of construction functions for Error to align with guidelines
    • Renamed Error::full() to Error::with_error().
    • Renamed Error::with_message() to Error::with_message_fn().
    • Renamed Error::message() to Error::with_message().
    • Renamed Error::with_context() to Error::with_context_fn().
    • Renamed Error::context() to Error::with_context().
    • Renamed ResultExt::map_kind() to ResultExt::with_kind().
    • Renamed ResultExt::with_context() to ResultExt::with_context_fn().
    • Renamed ResultExt::context() to ResultExt::with_context().
  • Replaced implementation of From<BufResponse> for Response<T, F> to From<RawResponse>.
  • Replaced implementation of From<Response<T, F>> for BufResponse to From<AsyncResponse<T>>.

Bugs Fixed

  • ErrorKind::HttpResponse { raw_response, .. } may have been incorrectly None.

Features Added

  • Added Error::with_error_fn().
  • Added AsyncResponse<T> for responses that may stream the body outside the HTTP pipeline. This replaces Response<T, F> requiring an async read of the body that occurred outside the HTTP pipeline.
  • Added http::response::BufResponseBody, which also implements Stream.
  • Added a Pipeline::stream() to return a Result<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]> and Deref<Target = [u8]> for ResponseBody.

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, and AmqpTarget
  • 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() and Query::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, so into_body() and other methods on the response are no longer async.

Event Hubs 0.8.0 Changelog

Breaking Changes

  • EventProcessor now consumes its ConsumerClient parameter rather than accepting a clone of an Arc.

EventHubs Checkpoint Store for Azure Blob Storage 0.2.0 Changelog

Other Changes

  • Updated dependencies.

Identity 0.29.0 Changelog

Breaking Changes

  • ClientCertificateCredential::new() takes Option<ClientCertificateCredentialOptions> instead of impl Into<ClientCertificateCredentialOptions>.
  • Credential constructors return an error when given a non-HTTPS authority host.
  • Renamed ClientCertificateCredential::new() parameter client_certificate_pass to client_certificate_password.
  • Replaced credential-specific authority_host options with azure_core::cloud::CloudConfiguration configured via ClientOptions.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, so into_body() and other methods on the response are no longer async.
  • Renamed KeyType::EC to KeyType::Ec to align with guidelines.
  • Renamed KeyType::RSA to KeyType::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, so into_body() and other methods on the response are no longer async.
  • Renamed KeyType::EC to KeyType::Ec to align with guidelines.
  • Renamed KeyType::RSA to KeyType::Rsa to align with guidelines.
  • Renamed EncryptionAlgorithm::RSA1_5 to EncryptionAlgorithm::Rsa1_5 to align with guidelines.
  • Renamed EncryptionAlgorithm::RsaOAEP256 to EncryptionAlgorithm::RsaOaep256 to align with guidelines.
  • Renamed several variants in SignatureAlgorithm to align with guidelines e.g., ES256K to Es256K.

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, so into_body() and other methods on the response are no longer async.

Storage - Blobs 0.6.0 Changelog

Breaking Changes

  • Changed BlobClient::download() to return an AsyncResponse instead of a Response. 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, so into_body() and other methods on the response are no longer async.

Features Added

  • Added support for exists to BlobClient and BlobContainerClient.

TypeSpec Client Core 0.8.0 Changelog

Breaking Changes

  • Changed ClientOptions::retry from Option<RetryOptions> to RetryOptions.
  • Changed DeserializeWith::deserialize_with() to be sync.
  • Changed Pipeline::send() to return a Result<RawResponse>.
  • Changed RawResponse::body() to return a &ResponseBody instead of &Bytes. ResponseBody wraps &Bytes, and implements AsRef<[u8]> and Deref<Target = [u8]>.
  • Changed RawResponse::into_body() to return a ResponseBody instead of Bytes. ResponseBody wraps &Bytes, and implements AsRef<[u8]> and Deref<Target = [u8]>.
  • Changed RawResponse::json() from async to a sync function. The body was already buffered.
  • Changed RawResponse::xml() from async to a sync function. The body was already buffered.
  • Changed Response<T, F> to fully sync; it holds a RawResponse that was already buffered entirely from the service so no longer needs or defines async functions.
  • Changed ResponseBody::json() and xml() to borrow self.
  • Removed create_extensible_enum and create_enum macros.
  • Removed BufResponse::json().
  • Removed BufResponse::xml().
  • Removed CustomHeadersPolicy from public API.
  • Removed ErrorKind::http_response(). Construct an ErrorResponse::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 for ResponseBody.
  • Renamed TransportOptions::new_custom_policy() to Transport::with_policy().
  • Renamed TransportOptions to Transport.
  • Renamed a number of construction functions for Error to align with guidelines
    • Renamed Error::full() to Error::with_error().
    • Renamed Error::with_message() to Error::with_message_fn().
    • Renamed Error::message() to Error::with_message().
    • Renamed Error::with_context() to Error::with_context_fn().
    • Renamed Error::context() to Error::with_context().
    • Renamed ResultExt::map_kind() to ResultExt::with_kind().
    • Renamed ResultExt::with_context() to ResultExt::with_context_fn().
    • Renamed ResultExt::context() to ResultExt::with_context().
  • Replaced implementation of From<BufResponse> for Response<T, F> to From<RawResponse>.
  • Replaced implementation of From<Response<T, F>> for BufResponse to From<AsyncResponse<T>>.

Features Added

  • Added AsyncResponse<T> for responses that may stream the body outside the HTTP pipeline. This replaces Response<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 implements Stream.
  • Added RawResponse::deconstruct().
  • Added ResponseBody::into_string().
  • Added ResponseBody::from_bytes().
  • Added a Pipeline::stream() to return a Result<BufResponse>.
  • Implemented AsRef<[u8]> and Deref<Target = [u8]> for ResponseBody.

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 implements AsRef<[u8]> and Deref<Target = [u8]>.
  • Changed RawResponse::into_body() to return a ResponseBody instead of Bytes. ResponseBody wraps &Bytes, and implements AsRef<[u8]> and Deref<Target = [u8]>.
  • Changed RawResponse::json() from async to a sync function. The body was already buffered.
  • Changed RawResponse::xml() from async to a sync function. The body was already buffered.
  • Moved AsHeaders, FromHeaders, Header, Headers, HeaderName, and HeaderValue to http::headers module to align with typespec_client_core.
  • Removed ErrorKind::http_response(). Construct an ErrorResponse::HttpResponse variant instead.
  • Renamed a number of construction functions for Error to align with guidelines
    • Renamed Error::full() to Error::with_error().
    • Renamed Error::with_message() to Error::with_message_fn().
    • Renamed Error::message() to Error::with_message().
    • Renamed Error::with_context() to Error::with_context_fn().
    • Renamed Error::context() to Error::with_context().
    • Renamed ResultExt::map_kind() to ResultExt::with_kind().
    • Renamed ResultExt::with_context() to ResultExt::with_context_fn().
    • Renamed ResultExt::context() to ResultExt::with_context().

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() to Error::with_error().
    • Renamed Error::with_message() to Error::with_message_fn().
    • Renamed Error::message() to Error::with_message().
    • Renamed Error::with_context() to Error::with_context_fn().
    • Renamed Error::context() to Error::with_context().
    • Renamed ResultExt::map_kind() to ResultExt::with_kind().
    • Renamed ResultExt::with_context() to ResultExt::with_context_fn().
    • Renamed ResultExt::context() to ResultExt::with_context().

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.