Azure SDK for Rust (June 2025)
The Azure SDK team is pleased to announce our June 2025 client library releases.
12 packages released this month.
Beta Packages (12)
-
Core
-
Core - AMQP
-
Cosmos DB
-
Event Hubs
-
Identity
-
Key Vault - Certificates
-
Key Vault - Keys
-
Key Vault - Secrets
-
Storage - Blobs
-
TypeSpec Client Core
-
TypeSpec Core
-
TypeSpec Core Macros
Release highlights
Core 0.25.0 Changelog
Features Added
- Added
#[safe]
attribute helper forSafeDebug
derive macro to show or hide types and members as appropriate. - Added
Page
trait to facilitate theItemIterator
. - Added
PageIterator
to asynchronously iterator all pages.
Bugs Fixed
BearerTokenCredentialPolicy
returns an error when a proactive token refresh attempt fails
Breaking Changes
- A
Pager
now asynchronously iterates over items across all pages. CallPager::into_pages()
to get aPageIterator
to asynchronously iterate over all pages. - Removed
AccessToken::is_expired()
. - Renamed
PagerResult::Continue
toMore
and itscontinuation
field tonext
. - Renamed
PagerResult::Complete
toDone
. - Renamed
PageStream
toItemIterator
.
Core - AMQP 0.4.0 Changelog
Breaking Changes
-
AmqpClaimsBasedSecurity
now takes ownership of the associated session rather than simply referencing the associated session. This means that all CBS authentication operations should be performed on dedicated AmqpSession objects. -
AmqpOrderedMap::iter
now iterates over references to key and value, not clones of the key and value, thus eliminating unnecessary clones.
Cosmos DB 0.24.0 Changelog
Features Added
- Added a function
CosmosClient::with_connection_string
to enableCosmosClient
creation via connection string. (#2641) - Added support for executing limited cross-partition queries through the Gateway. See https://learn.microsoft.com/rest/api/cosmos-db/querying-cosmosdb-resources-using-the-rest-api#queries-that-cannot-be-served-by-gateway for more details on these limitations. (#2577)
- Added a preview feature (behind
preview_query_engine
feature flag) to allow the Rust SDK to integrate with an external query engine for performing cross-partition queries. (#2577)
Breaking Changes
FeedPager<T>
now asynchronously iterates items of typeT
instead of pages containing items of typeT
. CallFeedPager::into_pages()
to get aPageIterator
to asynchronously iterate over all pages. (#2665)
Event Hubs 0.4.0 Changelog
Breaking Changes
- Event Message Properties is now an
AmqpSimpleValue
rather than anAmqpValue
to more closely reflect the AMQP specification (AMQP ApplicationProperties cannot contain Map, List, or Array).
Identity 0.25.0 Changelog
Bugs Fixed
AzureCliCredential
didn’t invokeaz
within a shell on all platforms
Key Vault - Certificates 0.3.0 Changelog
Bugs Fixed
Breaking Changes
Pager<T>
now asynchronously iterates items of typeT
instead of pages containing items of typeT
. CallPager::into_pages()
to get aPageIterator
to asynchronously iterate over all pages. This affects:CertificateClient::list_deleted_certificate_properties
CertificateClient::list_certificate_properties
CertificateClient::list_certificate_properties_versions
CertificateClient::list_issuer_properties
Features Added
- Built on Azure Key Vault service version 7.6.
- Added
preserve_cert_order
to several models to preserve the order of signing certificates when importing or merging certificates.
Key Vault - Keys 0.4.0 Changelog
Bugs Fixed
Breaking Changes
Pager<T>
now asynchronously iterates items of typeT
instead of pages containing items of typeT
. CallPager::into_pages()
to get aPageIterator
to asynchronously iterate over all pages. This affects:KeyClient::list_deleted_key_properties
KeyClient::list_key_properties
KeyClient::list_key_properties_versions
Features Added
- Built on Azure Key Vault service version 7.6.
- Added
EncryptionAlgorithm::CkmAesKeyWrap
andCkmAesKeyWrapPad
. - Added
JsonWebKeySignatureAlgorithm::Hs256
,Hs384
, andHs512
. - Added
KeyAttestation
returned byKeyAttributes::attestation
field. - Added
KeyClient::get_key_attestation
client method.
Key Vault - Secrets 0.4.0 Changelog
Bugs Fixed
Breaking Changes
Pager<T>
now asynchronously iterates items of typeT
instead of pages containing items of typeT
. CallPager::into_pages()
to get aPageIterator
to asynchronously iterate over all pages. This affects:SecretClient::list_deleted_secret_properties
SecretClient::list_secret_properties
SecretClient::list_secret_properties_versions
Features Added
- Built on Azure Key Vault service version 7.6.
Storage - Blobs 0.2.0 Changelog
Breaking Changes
- Moved
commit_block_list
,get_block_list
, andstage_block
fromBlobClient
toBlockBlobClient
.
Bugs Fixed
- Fixed an issue where the blob type string would appear as a query parameter in the request URL for certain APIs extraneously.
Features Added
- Added a new blob client type,
BlockBlobClient
. - Added navigation methods to access sub-clients from existing clients:
BlobServiceClient::blob_container_client()
BlobContainerClient::blob_client()
-
BlobClient::block_blob_client()
- Added support for
list_blobs
,set_metadata
toContainerClient
. - Added support for
set_metadata
,set_properties
, andset_tier
toBlobClient
.
TypeSpec Client Core 0.4.0 Changelog
Features Added
- Added
#[safe]
attribute helper forSafeDebug
derive macro to show or hide types and members as appropriate. - Added module
fmt::as_string
which is used to (de)serialize types in string format. - Added
Response<T, F>
type to represent a response with a specific format and model type. - Added
RawResponse
type to represent a raw response without a specific model.
Breaking Changes
- Removed the
Model
trait and replaced it withResponse<T, F>
, which moves the “format” information (JSON/XML/etc.) from the model to the service client method’s return type. This allows for more flexibility in handling different response formats and user data types in Responses. - Split
Response
intoResponse<T, F>
andRawResponse
(which carries the raw response data without a specific format).
TypeSpec Core 0.5.0 Changelog
Other Changes
- Updated dependencies.
TypeSpec Core Macros 0.4.0 Changelog
Features Added
- Added
#[safe]
attribute helper forSafeDebug
derive macro to show or hide types and members as appropriate.
Breaking Changes
- Removed
Model
derive macro.
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.25.0
$> cargo add azure_core_amqp@0.4.0
$> cargo add azure_data_cosmos@0.24.0
$> cargo add azure_identity@0.25.0
$> cargo add azure_messaging_eventhubs@0.4.0
$> cargo add azure_security_keyvault_certificates@0.3.0
$> cargo add azure_security_keyvault_keys@0.4.0
$> cargo add azure_security_keyvault_secrets@0.4.0
$> cargo add azure_storage_blob@0.2.0
$> cargo add typespec@0.5.0
$> cargo add typespec_client_core@0.4.0
$> cargo add typespec_macros@0.4.0
Feedback
If you have a bug or feature request for one of the libraries, please post an issue to GitHub.