The Azure SDK team is pleased to announce our March 2026 client library releases.

15 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.33.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)

Features Added

  • Added ErrorKind::Connection for connection errors.
  • Added QueryBuilder, DEFAULT_ALLOWED_HEADER_NAMES, DEFAULT_ALLOWED_QUERY_PARAMETERS, and REDACTED_PATTERN to azure_core::http.
  • Added request_header!, request_option!, and request_query! macros.
  • Added SecretBytes to azure_core::credentials for securely passing byte secrets without printing them in Debug or Display output.
  • The reqwest HTTP client now classifies connection errors as ErrorKind::Connection.

Core - AMQP 0.12.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)

Core - Macros 0.7.0 Changelog

Core - OpenTelemetry 0.7.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)

Cosmos DB 0.31.0 Changelog

Features Added

  • Added with_excluded_regions to ItemOptions for additional regional routing options. (#3602)
  • Added effective_preferred_regions to the client, ensuring multi-region accounts use all regions for cross-regional availability without supplying regional preferences to their client. (#3602)
  • Added basic multi-region writes support. (#3482 and #3495)
  • Added new CosmosResponse that wraps azure_core::Response for all operations except queries. (#3622)
  • Added transactional batch support for executing multiple operations atomically within the same partition key. (#3664)
  • Added fault injection support for testing cosmosdb clients in disaster scenarios. Fault injection is behind the feature flag fault_injection. (#3599)

Breaking Changes

  • Changed our minimum supported Rust version (MSRV) from 1.85 to 1.88.
  • Removed ContainerClient::patch_item, PatchDocument, and PatchOperation temporarily to redesign the PATCH API for safe idempotency. Use a Read/Modify/Replace model with ETag-based optimistic concurrency instead.
  • Changed return type of query methods from FeedPager<T> (an alias for ItemIterator<FeedPage<T>, String>) to FeedItemIterator<T>, which implements Stream<Item = Result<T>> and provides into_pages() for page-level access. (#3515)
  • Introduced CosmosClientBuilder for constructing CosmosClient instances, replacing constructor-based API. Removed consistency_level, priority, throughput_bucket, excluded_regions, SessionRetryOptions, triggers, and IndexingDirective from options. Simplified CosmosAccountReference to take CosmosAccountEndpoint directly. Made option struct fields private with getters and with_* setters. (#3744)
  • Removed with_application_preferred_regions API. Use with_application_region to set the Azure region the app is executing in (or the closest region to the actual location you’re running in); the SDK generates preferred regions by geographic proximity. (#3796)
  • Made CosmosClientBuilder::build() and DatabaseClient::container_client() async to prepare for future cache population (account, collection, partition key range caches).
  • Support for wasm32-unknown-unknown has been removed (#3377)

Event Hubs 0.12.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)

EventHubs Checkpoint Store for Azure Blob Storage 0.6.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)

Identity 0.33.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)
  • ClientCertificateCredential::new() now takes SecretBytes instead of Secret for the certificate parameter. Pass the raw PKCS12 bytes wrapped in SecretBytes instead of a base64-encoded string wrapped in Secret.

Key Vault - Certificates 0.11.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)

Key Vault - Keys 0.12.0 Changelog

Breaking Changes

  • Moved key_version from options to a required parameter on KeyClient::decrypt(), encrypt(), sign(), unwrap_key(), verify(), and wrap_key().
  • Support for wasm32-unknown-unknown has been removed (#3377)

Key Vault - Secrets 0.12.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)

Storage - Blobs 0.10.0 Changelog

Bugs Fixed

  • Fixed an issue where user-provided per_try_policies in ClientOptions were ignored when constructing any Blob Storage client.

Breaking Changes

  • Revised upload() on BlockBlobClient and BlobClient with the following breaking changes:
  • Now uses our managed upload logic for optimal performance in single-shot and multi-part transfers.
  • Removed the content_length parameter.
  • BlobClient::upload() removed the overwrite parameter; it now overwrites by default. Use BlobClientUploadOptions::with_if_not_exists() to prevent overwriting an existing blob.
  • BlockBlobClient::upload() accepts BlockBlobClientUploadOptions; BlobClient::upload() accepts BlobClientUploadOptions (a re-export of the same type).
  • Returns Result<BlockBlobClientUploadResult> (or Result<BlobClientUploadResult> via BlobClient) instead of Result<Response<BlockBlobClientUploadInternalResult, NoFormat>>.
  • Changed BlockBlobClientUploadOptions.if_match and if_none_match from Option<String> to Option<Etag>.
  • Changed if_match, if_none_match, source_if_match, and source_if_none_match fields in all method option structs from Option<String> to Option<Etag>.
  • Changed BlobProperties::etag and ContainerProperties::etag from Option<String> to Option<Etag>.
  • Renamed ContainerItem.delete to ContainerItem.deleted.
  • Renamed ListBlobsFlatSegmentResponse to ListBlobsResponse.
  • Changed BlobItem.name from Option<BlobName> to Option<String>. Encoded blob names are now automatically percent-decoded during deserialization.
  • Support for wasm32-unknown-unknown has been removed (#3377)

TypeSpec Client Core 0.12.0 Changelog

Breaking Changes

  • Support for wasm32-unknown-unknown has been removed (#3377)
  • Removed tracing::FutureExt and tracing::WithContext.

Features Added

  • Added ErrorKind::Connection for connection errors.
  • The reqwest HTTP client now classifies connection errors as ErrorKind::Connection.

TypeSpec Core 0.13.0 Changelog

Features Added

  • Added ErrorKind::Connection for connection errors.

TypeSpec Core Macros 0.12.0 Changelog

Other Changes

  • Updated dependencies.

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.33.0
$> cargo add azure_core_amqp@0.12.0
$> cargo add azure_core_macros@0.7.0
$> cargo add azure_core_opentelemetry@0.7.0
$> cargo add azure_data_cosmos@0.31.0
$> cargo add azure_identity@0.33.0
$> cargo add azure_messaging_eventhubs@0.12.0
$> cargo add azure_messaging_eventhubs_checkpointstore_blob@0.6.0
$> cargo add azure_security_keyvault_certificates@0.11.0
$> cargo add azure_security_keyvault_keys@0.12.0
$> cargo add azure_security_keyvault_secrets@0.12.0
$> cargo add azure_storage_blob@0.10.0
$> cargo add typespec@0.13.0
$> cargo add typespec_client_core@0.12.0
$> cargo add typespec_macros@0.12.0

Feedback

If you have a bug or feature request for one of the libraries, please post an issue to GitHub.