Azure SDK for Rust (April 2025)
The Azure SDK team is pleased to announce our April 2025 client library releases.
10 packages released this month.
Beta Packages (10)
-
Core
-
Core - AMQP
-
Event Hubs
-
Identity
-
Key Vault - Certificates
-
Key Vault - Keys
-
Key Vault - Secrets
-
TypeSpec Client Core
-
TypeSpec Core
-
TypeSpec Core Macros
Release highlights
Core 0.23.0 Changelog
Features Added
- Added
azure_core::process::Executorto run commands asynchronously. Thetokiofeature is disabled by default sostd::process::Commandis used; otherwise, if enabled,tokio::process::Commandis used. - Added
httpmodule containing all functions, modules, and types fromtypespec_client_core::http. - Added
azure_core::http::policies::ClientRequestIdPolicyto every pipeline. Client libraries can add with custom header name instead. - Moved
Pagerfromtypespec_client_core::httptoazure_core::httpmodule since it is Azure-specific. - Re-exported
Body,Request, andRequestContentfromhttp::requestmodule. - Re-exported
create_enum,create_extensible_enummacros fromtypespec_client_core. - Re-exported
ModelandResponsefromhttp::responsemodule.
Breaking Changes
- Removed
azure_core::credentials::TokenCredential::clear_cache() - Consolidated all the
tokiofeatures into a single feature namedtokio. Traits remain separate buttokiosupport is enabled with a single feature. - Moved
AppendToUrlQuerytype underhttpmodule. - Moved
ByteStreamandSeekableStreamtypes understreammodule. - Moved
ClientMethodOptionstype underhttpmodule. - Moved
ClientOptionstype underhttpmodule. - Moved
Contexttype underhttpmodule. - Moved
Etagtype underhttpmodule. - Moved
ExponentialRetryOptionstype underhttpmodule. - Moved
FixedRetryOptionstype underhttpmodule. - Moved
headersmodule underhttpmodule. - Moved
HttpClienttype underhttpmodule. - Moved
LeaseActiontype underhttpmodule. - Moved
LeaseDurationtype underhttpmodule. - Moved
LeaseStatetype underhttpmodule. - Moved
LeaseStatustype underhttpmodule. - Moved
Methodtype underhttpmodule. - Moved
new_http_clientfunction underhttpmodule. - Moved
Pipelinetype underhttpmodule. - Moved
policiesmodule underhttpmodule. - Moved
requestmodule underhttpmodule. - Moved
responsemodule underhttpmodule. - Moved
RetryOptionstype underhttpmodule. - Moved
StatusCodetype underhttpmodule. - Moved
TelemetryOptionstype underhttpmodule. - Moved
TransportOptionstype underhttpmodule. - Moved
Urltype underhttpmodule. - Removed
content_typemodule. - Removed
EMPTY_BODYconstant from root. - Removed
future!()macro. - Removed
Headerre-export fromhttpmodule. It is still defined in thehttp::headersmodule. - Removed
parsingmodule. - Removed
query_parammodule. - Removed
RequestIdtype alias from root. - Removed
SessionTokentype alias from root. - Renamed
lromodule tohttp::pollermodule. - Renamed
lromodule types with prefix “Lro” to prefix “Poller”. - Renamed
tokiomodule tofssince it contained only thetypespec_client_core::fsmodule members.
Core - AMQP 0.2.0 Changelog
Features Added
- Added the ability to compare an
AmqpAnnotationKeywith a string and string slice.
Breaking Changes
- APIs which used to return
Option<String>, andOption<Vec<T>>now returnOption<&str>, andOption<&[T]>. - APIs which take ownership of string parameters now take a
Stringparameter instead of a&strparameter.
Event Hubs 0.2.0 Changelog
Bugs Fixed
- If you call
send_eventorsend_messagewith a specific target partition, the call now respects the desired target partition.
Features Added
- Added initial support for an EventHubs processor.
Note that as currently implemented, the processor is not very functional, since it requires that the customer provide an instance of a checkpoint store.
For people who wish to play with the checkpoint store, there is an InMemoryCheckpointStore created (under the “test” feature) which can be used to experiment with the EventHubs processor.
- Removed the requirement that streaming messages from the
stream_eventsmethod on theEventReceiverusepin_mut!()on the provided stream. - Removed direct dependencies on
tokiopackage. - Added
partition_idoption toSendMessageOptions. - Significant modifications to API surface to improve conformance to Azure RUST guidelines e.g., APIs which take ownership of a string consume
Stringparameter instead of borrowing a&strparameter.
Breaking Changes
- The stream returned by the
stream_eventsAPI needs to be declared as mutable. - APIs which used to return
Option<String>, andOption<Vec<T>>now returnOption<&str>, andOption<&[T]>. - APIs which take ownership of string parameters now take a
Stringparameter instead of a&strparameter.
Identity 0.23.0 Changelog
Features Added
- Added
AzurePipelinesCredential. AzureCliCredentialOptions(new) accepts aazure_core::process::Executorto run the Azure CLI asynchronously. Thetokiofeature is disabled by default sostd::process::Commandis used; otherwise, if enabled,tokio::process::Commandis used. Callers can also implement the trait themselves to use a different asynchronous runtime.- Restored
ClientSecretCredential
Breaking Changes
- Added
Option<AzureCliCredentialOptions>toAzureCliCredential::new. AzureCliCredentialauthenticates only against the first scope passed as a resource to support both v1 and v2 CLI versions.ClientAssertionCredentialconstructors moved some parameters to anOption<ClientAssertionCredentialOptions>parameter.- Removed
get_subscription()andget_tenant()fromAzureCliCredential. WorkloadIdentityCredentialconstructors moved some parameters to anOption<ClientAssertionCredentialOptions>parameter.- Removed
clear_cache()from all credential types - Removed
old_azure_clifeature.AzureCliCredentialnow requires a recent version of the Azure CLI (2.54.0 or later). - Replaced
AppServiceManagedIdentityCredential,VirtualMachineManagedIdentityCredential, andImdsIdwithManagedIdentityCredentialandUserAssignedId
Key Vault - Certificates 0.1.0 Changelog
Features Added
- Initial public release.
- Built on Azure Key Vault service version 7.6-preview.2.
Key Vault - Keys 0.2.0 Changelog
Breaking Changes
- Changed model fields defined as an
Option<HashMap<K, V>>to just aHashMap<K, V>. - Changed model fields defined as an
Option<Vec<T>>to just aVec<T>. - Removed the “JsonWebKey” prefix from all types e.g.,
JsonWebKeyCurveNameis nowCurveName. - Renamed
DeletedKeyBundletoDeleteKey. - Renamed
DeletedKeyItemtoDeletedKeyProperties. - Renamed
KeyClient::get_keystolist_keys. - Renamed
KeyBundletoKey. - Renamed
KeyBundleBackuptoKeyBackup. - Renamed
KeyClient::get_keystolist_key_properties. - Renamed
KeyItemtoKeyProperties. - Renamed all parameter types to match the {Verb}{Noun} format of the client methods that use them e.g.,
create_keyusesCreateKeyParameters.
Bugs Fixed
ResourceExtcanonicalizes URL path segments (#2177)
Key Vault - Secrets 0.2.0 Changelog
Breaking Changes
- Changed model fields defined as an
Option<HashMap<K, V>>to just aHashMap<K, V>. - Changed model fields defined as an
Option<Vec<T>>to just aVec<T>. - Renamed
DeletedSecretBundletoDeleteSecret. - Renamed
DeletedSecretItemtoDeletedSecretProperties. - Renamed
SecretBundletoSecret. - Renamed
SecretBundleBackuptoSecretBackup. - Renamed
SecretClient::get_secretstolist_secret_properties. - Renamed
SecretItemtoSecretProperties. - Renamed all parameter types to match the {Verb}{Noun} format of the client methods that use them e.g.,
set_secretusesSetSecretParameters.
Bugs Fixed
ResourceExtcanonicalizes URL path segments (#2177)
TypeSpec Client Core 0.2.0 Changelog
Breaking Changes
- Consolidated all the
tokiofeatures into a single feature namedtokio. Traits remain separate buttokiosupport is enabled with a single feature. - Removed
Headerre-export fromhttpmodule. It is still defined in thehttp::headersmodule. - Removed
http-typesdependency and implementedMethodinstead. - Removed
Pager. - Removed
parsingmodule.
TypeSpec Core 0.3.0 Changelog
Breaking Changes
- Removed
http-typesdependency and implementedStatusCodeinstead.
TypeSpec Core Macros 0.2.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.23.0
$> cargo add azure_core_amqp@0.2.0
$> cargo add azure_identity@0.23.0
$> cargo add azure_messaging_eventhubs@0.2.0
$> cargo add azure_security_keyvault_certificates@0.1.0
$> cargo add azure_security_keyvault_keys@0.2.0
$> cargo add azure_security_keyvault_secrets@0.2.0
$> cargo add typespec@0.3.0
$> cargo add typespec_client_core@0.2.0
$> cargo add typespec_macros@0.2.0
Feedback
If you have a bug or feature request for one of the libraries, please post an issue to GitHub.