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::Executor
to run commands asynchronously. Thetokio
feature is disabled by default sostd::process::Command
is used; otherwise, if enabled,tokio::process::Command
is used. - Added
http
module containing all functions, modules, and types fromtypespec_client_core::http
. - Added
azure_core::http::policies::ClientRequestIdPolicy
to every pipeline. Client libraries can add with custom header name instead. - Moved
Pager
fromtypespec_client_core::http
toazure_core::http
module since it is Azure-specific. - Re-exported
Body
,Request
, andRequestContent
fromhttp::request
module. - Re-exported
create_enum
,create_extensible_enum
macros fromtypespec_client_core
. - Re-exported
Model
andResponse
fromhttp::response
module.
Breaking Changes
- Removed
azure_core::credentials::TokenCredential::clear_cache()
- Consolidated all the
tokio
features into a single feature namedtokio
. Traits remain separate buttokio
support is enabled with a single feature. - Moved
AppendToUrlQuery
type underhttp
module. - Moved
ByteStream
andSeekableStream
types understream
module. - Moved
ClientMethodOptions
type underhttp
module. - Moved
ClientOptions
type underhttp
module. - Moved
Context
type underhttp
module. - Moved
Etag
type underhttp
module. - Moved
ExponentialRetryOptions
type underhttp
module. - Moved
FixedRetryOptions
type underhttp
module. - Moved
headers
module underhttp
module. - Moved
HttpClient
type underhttp
module. - Moved
LeaseAction
type underhttp
module. - Moved
LeaseDuration
type underhttp
module. - Moved
LeaseState
type underhttp
module. - Moved
LeaseStatus
type underhttp
module. - Moved
Method
type underhttp
module. - Moved
new_http_client
function underhttp
module. - Moved
Pipeline
type underhttp
module. - Moved
policies
module underhttp
module. - Moved
request
module underhttp
module. - Moved
response
module underhttp
module. - Moved
RetryOptions
type underhttp
module. - Moved
StatusCode
type underhttp
module. - Moved
TelemetryOptions
type underhttp
module. - Moved
TransportOptions
type underhttp
module. - Moved
Url
type underhttp
module. - Removed
content_type
module. - Removed
EMPTY_BODY
constant from root. - Removed
future!()
macro. - Removed
Header
re-export fromhttp
module. It is still defined in thehttp::headers
module. - Removed
parsing
module. - Removed
query_param
module. - Removed
RequestId
type alias from root. - Removed
SessionToken
type alias from root. - Renamed
lro
module tohttp::poller
module. - Renamed
lro
module types with prefix “Lro” to prefix “Poller”. - Renamed
tokio
module tofs
since it contained only thetypespec_client_core::fs
module members.
Core - AMQP 0.2.0 Changelog
Features Added
- Added the ability to compare an
AmqpAnnotationKey
with 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
String
parameter instead of a&str
parameter.
Event Hubs 0.2.0 Changelog
Bugs Fixed
- If you call
send_event
orsend_message
with 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_events
method on theEventReceiver
usepin_mut!()
on the provided stream. - Removed direct dependencies on
tokio
package. - Added
partition_id
option toSendMessageOptions
. - Significant modifications to API surface to improve conformance to Azure RUST guidelines e.g., APIs which take ownership of a string consume
String
parameter instead of borrowing a&str
parameter.
Breaking Changes
- The stream returned by the
stream_events
API 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
String
parameter instead of a&str
parameter.
Identity 0.23.0 Changelog
Features Added
- Added
AzurePipelinesCredential
. AzureCliCredentialOptions
(new) accepts aazure_core::process::Executor
to run the Azure CLI asynchronously. Thetokio
feature is disabled by default sostd::process::Command
is used; otherwise, if enabled,tokio::process::Command
is used. Callers can also implement the trait themselves to use a different asynchronous runtime.- Restored
ClientSecretCredential
Breaking Changes
- Added
Option<AzureCliCredentialOptions>
toAzureCliCredential::new
. AzureCliCredential
authenticates only against the first scope passed as a resource to support both v1 and v2 CLI versions.ClientAssertionCredential
constructors moved some parameters to anOption<ClientAssertionCredentialOptions>
parameter.- Removed
get_subscription()
andget_tenant()
fromAzureCliCredential
. WorkloadIdentityCredential
constructors moved some parameters to anOption<ClientAssertionCredentialOptions>
parameter.- Removed
clear_cache()
from all credential types - Removed
old_azure_cli
feature.AzureCliCredential
now requires a recent version of the Azure CLI (2.54.0 or later). - Replaced
AppServiceManagedIdentityCredential
,VirtualMachineManagedIdentityCredential
, andImdsId
withManagedIdentityCredential
andUserAssignedId
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.,
JsonWebKeyCurveName
is nowCurveName
. - Renamed
DeletedKeyBundle
toDeleteKey
. - Renamed
DeletedKeyItem
toDeletedKeyProperties
. - Renamed
KeyClient::get_keys
tolist_keys
. - Renamed
KeyBundle
toKey
. - Renamed
KeyBundleBackup
toKeyBackup
. - Renamed
KeyClient::get_keys
tolist_key_properties
. - Renamed
KeyItem
toKeyProperties
. - Renamed all parameter types to match the {Verb}{Noun} format of the client methods that use them e.g.,
create_key
usesCreateKeyParameters
.
Bugs Fixed
ResourceExt
canonicalizes 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
DeletedSecretBundle
toDeleteSecret
. - Renamed
DeletedSecretItem
toDeletedSecretProperties
. - Renamed
SecretBundle
toSecret
. - Renamed
SecretBundleBackup
toSecretBackup
. - Renamed
SecretClient::get_secrets
tolist_secret_properties
. - Renamed
SecretItem
toSecretProperties
. - Renamed all parameter types to match the {Verb}{Noun} format of the client methods that use them e.g.,
set_secret
usesSetSecretParameters
.
Bugs Fixed
ResourceExt
canonicalizes URL path segments (#2177)
TypeSpec Client Core 0.2.0 Changelog
Breaking Changes
- Consolidated all the
tokio
features into a single feature namedtokio
. Traits remain separate buttokio
support is enabled with a single feature. - Removed
Header
re-export fromhttp
module. It is still defined in thehttp::headers
module. - Removed
http-types
dependency and implementedMethod
instead. - Removed
Pager
. - Removed
parsing
module.
TypeSpec Core 0.3.0 Changelog
Breaking Changes
- Removed
http-types
dependency and implementedStatusCode
instead.
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.