NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1616 most downloaded on crates.io
Rust wrappers around Microsoft Azure REST APIs - Core crate
Last release 1 months ago
05 Sep 2026
Ships fairly regularly
a new release about every 5 weeks
Some releases are documented
notes for 17 of 38 stable releases
2 versions withdrawn
withdrawn after publishing
5 years old
41 releases · first in 2021
One column per quarter.
Added azure-deprecating to the default allowed HTTP header list so shared debug and logging paths stop redacting it.
Tracer::start_span_with_options, Tracer::start_span_with_parent_and_options, and Span::end_at, along with a SpanOptions struct, to allow reconstructing spans with explicit (backdated) start and end timestamps. These are additive with default implementations, so existing Tracer/Span implementations continue to work unchanged.DeserializeWith::deserialize_from with a body-only default, allowing custom model decoders to inspect response headers without requiring serde deserialization.stream::ReadStream and stream::SeekableReadStream adapters, along with RequestContent::from_reader and RequestContent::from_seekable_reader, to build request bodies from futures::io::AsyncRead sources.typespec_client_core so dropping a sleep future created by the standard (non-tokio) async runtime promptly cancels its worker thread.azure-deprecating to the default allowed HTTP header list so shared debug and logging paths stop redacting it.Error now captures a std::Backtrace at construction time and includes it in Debug output (e.g., {:?}) when RUST_BACKTRACE=1 is set.
Error now captures a std::backtrace::Backtrace at construction time and includes it in Debug output (e.g., {:?}) when RUST_BACKTRACE=1 is set.#[must_use] to AsyncRuntime functions.#[must_use] to ItemIterator (Pager) and PageIterator types.#[must_use] to Poller type.Added #[non_exhaustive] to AttributeArray, AttributeValue, SpanStatus, and SpanKind.
#[non_exhaustive] to AttributeArray, AttributeValue, SpanStatus, and SpanKind.Added the reqwest_rustls feature to use aws-lc-rs as the default TLS provider.
reqwest_rustls feature to use aws-lc-rs as the default TLS provider.reqwest_native_tls feature in favor of reqwest_rustls.new_http_client() now takes an Option<HttpClientOptions> to disable automatic decompression - still enabled by default if reqwest_gzip or reqwest_deflate features are enabled.Derived Clone and Serialize on ErrorResponse, ErrorDetail, and InnerError.
From<BytesStream> for Body.Clone and Serialize on ErrorResponse, ErrorDetail, and InnerError.SeekableStream::len() and Body::len() now return Option<u64> instead of usize to support streams with unknown length and to align with std::fs::Metadata::len() for large file sizes.SeekableStream::is_empty() and Body::is_empty() now return Option<bool>.tokio feature to default features.async_runtime::spawn/SpawnedTask to return a trait object that supports abort().url.full span attribute in distributed traces now has query parameter values sanitized. Only parameters in LoggingOptions::additional_allowed_query_params and the default allow list (e.g., api-version) retain their values; all others are replaced with REDACTED.Added ErrorKind::Connection for connection errors.
ErrorKind::Connection for connection errors.QueryBuilder, DEFAULT_ALLOWED_HEADER_NAMES, DEFAULT_ALLOWED_QUERY_PARAMETERS, and REDACTED_PATTERN to azure_core::http.request_header!, request_option!, and request_query! macros.SecretBytes to azure_core::credentials for securely passing byte secrets without printing them in Debug or Display output.reqwest HTTP client now classifies connection errors as ErrorKind::Connection.wasm32-unknown-unknown has been removed (#3377)Added PagerContinuation for Pager continuation.
PagerContinuation for Pager continuation.PollerContinuation for Poller continuation.PagerContinuation and non-generic PagerState/PagerResult types.PollerContinuation and non-generic PollerState/PollerResult types.PagerOptions::continuation_token to continuation.Pager::continuation_token to continuation.Pager::into_continuation_token to into_continuation.PageIterator::continuation_token to continuation.PageIterator::into_continuation_token to into_continuation.Pager callbacks must now return Result.Added continuation_token to PagerOptions.
Body::take().continuation_token to PagerOptions.BearerTokenAuthorizationPolicy.
OnRequest, OnChallenge, and Authorizer traits define callbacks for these features.with_on_request() and with_on_challenge() builder methods set callbacks for a policy instance.Request::body_mut().UrlExt::set_query_pair() to simplify overwriting query parameter key values.QueryBuilder.C to Pager declaration, defaulting to Url so it can be elided in most existing declarations.Pager::from_callback to take a PagerOptions as the second parameter rather than a Context parameter.Pager::from_callback to Pager::new which now requires the caller to return a Pin<Box<dyn Future>>.Poller::from_callback to Poller::new which now requires the caller to return a Pin<Box<dyn Future>>.PollerResult::next field to PollerResult::continuation_token.PollerState generic parameter from N to C.BearerTokenAuthorizationPolicy into azure_core::http::policies::auth.ItemIterator::with_continuation_token(). Pass a continuation token to PagerOptions::continuation_token instead.PageIterator::with_continuation_token(). Pass a continuation token to PagerOptions::continuation_token instead.Pager::from_stream.Poller::from_stream.BoxedFuture to PagerResultFuture in pager module.Increment version for re-release following a fix to publishing.
Added Context::to_owned() to create a newly owned Context from an existing Context.
Context::to_owned() to create a newly owned Context from an existing Context.ItemIterator::continuation_token() and with_continuation_token() to resume paging items. The current page is restarted until after all items have been iterated.PipelineOptions::retry_status_codes for configuring which status codes should trigger a retry.Response<T, F>::body(&self) -> &ResponseBody.Response<T, F>::to_raw_response() function to create a RawResponse from cloned data.UrlExt::append_path().IntoFuture for a Poller. Call await on a Poller to get the final model, or into_stream() to get a futures::Stream to poll the operation manually.serde_json::Value as azure_core::Value (#1687)Context field to PollerOptions. Client methods which return Poller objects should accept a PollerOptions in their method_options field instead of a ClientMethodOptions.F: Format type parameter to Poller and PollerResult.Format associated type to StatusMonitor.Format::deserialize() function to Format trait.S type parameter to xml::from_xml congruent with json::from_json().PollerOptions::frequency from Option<Duration> to Duration.base64::option module. base64 module now deserializes or serializes non-optional fields congruent with the time module.constants module.credentials::DEFAULT_SCOPE_SUFFIX.CustomHeaders policy.ErrorKind::MockFramework.Poller::wait() function. Call await on a Poller to wait for it to complete and, upon success, return the final model.xml::read_xml_str().BearerTokenCredentialPolicy to BearerTokenAuthorizationPolicy.BufResponse to AsyncRawResponse so that AsyncRawResponse is to RawResponse as AsyncIterator is to Iterator.BufResponseBody to AsyncResponseBody so that AsyncResponseBody is to ResponseBody as AsyncIterator is to Iterator.Response<T, F>::into_body(self) -> Result<Response<T>> to into_model(self) -> Result<Response<T>>. into_body(self) now returns a ResponseBody.RetryPolicy::get_retry_headers() to RetryPolicy::retry_headers()xml::read_xml() to xml::from_xml() congruent with json::from_json().ItemIterator::into_pages() now properly supports resuming from the current page until after all items have been iterated.Removed the azurite_workaround feature (unused).
azurite_workaround feature (unused).Added AsyncResponse for responses that may stream the body outside the HTTP pipeline. This replaces Response requiring an async read of the body that
Error::with_error_fn().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.http::response::BufResponseBody, which also implements Stream.Pipeline::stream() to return a Result<BufResponse>.RawResponse::deconstruct().ResponseBody::into_string().ResponseBody::from_bytes().cloud module with types for configuring clients to use different Azure clouds.AsRef<[u8]> and Deref<Target = [u8]> for ResponseBody.ClientOptions::retry from Option<RetryOptions> to RetryOptions.DeserializeWith::deserialize_with() to be sync.Pipeline::send() to return a Result<RawResponse>.RawResponse::body() to return a &ResponseBody instead of &Bytes. ResponseBody wraps &Bytes, and implements AsRef<[u8]> and Deref<Target = [u8]>.RawResponse::into_body() to return a ResponseBody instead of Bytes. ResponseBody wraps &Bytes, and implements AsRef<[u8]> and Deref<Target = [u8]>.RawResponse::json() from async to a sync function. The body was already buffered.RawResponse::xml() from async to a sync function. The body was already buffered.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.ResponseBody::json() and xml() to borrow self.create_extensible_enum and create_enum macros.BufResponse::json().BufResponse::xml().CustomHeadersPolicy from public API.ErrorKind::http_response(). Construct an ErrorResponse::HttpResponse variant instead.ExponentialRetryPolicy from public API.FixedRetryPolicy from public API.LoggingPolicy from public API.NoRetryPolicy from public API.Stream for ResponseBody.TransportOptions::new_custom_policy() to Transport::with_policy().TransportOptions to Transport.Error to align with guidelines
Error::full() to Error::with_error().Error::with_message() to Error::with_message_fn().Error::message() to Error::with_message().Error::with_context() to Error::with_context_fn().Error::context() to Error::with_context().ResultExt::map_kind() to ResultExt::with_kind().ResultExt::with_context() to ResultExt::with_context_fn().ResultExt::context() to ResultExt::with_context().From<BufResponse> for Response<T, F> to From<RawResponse>.From<Response<T, F>> for BufResponse to From<AsyncResponse<T>>.ErrorKind::HttpResponse { raw_response, .. } may have been incorrectly None.Added RawResponse to ErrorKind::HttpResponse that contains the HTTP status code, headers, and complete error response body.
RawResponse to ErrorKind::HttpResponse that contains the HTTP status code, headers, and complete error response body.RequestContent::from_slice().TokenRequestOptions { method_options: ClientMethodOptions }.TryFrom<T> for RequestContent<T, JsonFormat> for JSON primitives.async_runtime module.azure_core::http::ClientOptions has been enhanced with a LoggingOptions which allows a user/service client to specify headers or URL query parameters which should be allowed. Note that the sanitization feature is disabled if you build with the debug feature enabled.azure_core::error::http::ErrorResponse structure which describes an error according to the Azure REST API guidelines.azure_core::http::check_success(BufResponse) function to convert a buffered response to an ErrorKind::HttpResponse.TokenRequestOptions.ClientOptions. This adds a new optional PipelineOptions parameter to azure_core::http::Pipeline::new(). If not specified, it defaults to the expected options for azure_core services.FromStr for RequestContent<T, F> to RequestContent::from_str().TryFrom<&'static str> for RequestContent<T, F> to RequestContent::from_static().TryFrom<Bytes> for RequestContent<T, F> to From<Bytes> for RequestContent<T, F> because it was already infallible.TryFrom<Vec<u8>> for RequestContent<T, F> since RequestContent::from() already exists.reqwest_rustls_tls. See README.md for alternative HTTP client configuration.fs module including the FileStream and FileStreamBuilder types. Moved to examples/ for typespec_client_core to copy if needed.setters macro.RawResponse to BufResponse. New RawResponse contains complete body as Bytes used in ErrorKind::HttpResponse.Added support for distributed tracing macros in Azure service clients, including convenience macros #[tracing::new], #[tracing::client] and #[tracing:
#[tracing::new], #[tracing::client] and #[tracing::function] to reduce implementation details. See distributed tracing in rust for more information on distributed tracing.Pager::from_callback and PageIterator::from_callback define a parameter of type PagerState<C> instead of Option<C>, where None => Initial and Some(C) => More(C).Poller::from_callback defines a parameter of type PollerState<N> instead of Option<N>, where None => Initial and Some(N) => More(N).Added get_async_runtime() and set_async_runtime() to allow customers to replace the asynchronous runtime used by the Azure SDK.
get_async_runtime() and set_async_runtime() to allow customers to replace the asynchronous runtime used by the Azure SDK.PageIterator::continuation_token() and PageIterator::with_continuation_token() to support reconstructing a PageIterator in another process or on another machine to continue paging.Poller<T> for long-running operations (LROs).Request::set_method() to allow changing the HTTP method of a request.StatusMonitor for long-running operations.http::PollerOptions parameter to http::poller::get_retry_after.FromStr where FromStr::Err = Infallible for PollerStatus instead of From<&str>.azure_core::http::Pipeline::new now takes an azure_core::http::ClientOptions which is defined in azure_core, but convertible to typespec_client_core::http::ClientOptions.process::Executor to azure_identity.Pipeline::replace_policy.location and body modules from http::poller.azure_core::date to azure_core::time and added azure_core::time::Duration as the standard "duration" type for the SDK.http::poller::body_content to http::poller::body.PagerResult::More { next } to continuation.PollerStatus::Other to PollerStatus::UnknownValue following guidelines.TelemetryOptions to UserAgentOptions.TelemetryPolicy to UserAgentPolicy.CustomHeadersPolicy is executed after the retry policy in the Pipeline.Added #[safe] attribute helper for SafeDebug derive macro to show or hide types and members as appropriate.
#[safe] attribute helper for SafeDebug derive macro to show or hide types and members as appropriate.Page trait to facilitate the ItemIterator.PageIterator to asynchronously iterate all pages.Pager now asynchronously iterates over items across all pages. Call Pager::into_pages() to get a PageIterator to asynchronously iterate over all pages.AccessToken::is_expired().PagerResult::Continue to More and its continuation field to next.PagerResult::Complete to Done.PageStream to ItemIterator.BearerTokenCredentialPolicy returns an error when a proactive token refresh attempt failsAdded TaskSpawner abstraction to spawn asynchronous tasks for different async runtimes. Defaults to optional tokio runtime.
TaskSpawner abstraction to spawn asynchronous tasks for different async runtimes. Defaults to optional tokio runtime.PagerResult always returns items of type T instead of Response<T>.SafeDebug formats non-exhaustive types by default. Enable debug feature to format normal Debug output.Added azure_core::Executor to run commands asynchronously. The tokio feature is disabled by default so std::Command is used; otherwise, if enabled, to
azure_core::process::Executor to run commands asynchronously.
The tokio feature is disabled by default so std::process::Command is used; otherwise, if enabled, tokio::process::Command is used.http module containing all functions, modules, and types from typespec_client_core::http.azure_core::http::policies::ClientRequestIdPolicy to every pipeline. Client libraries can add with custom header name instead.Pager from typespec_client_core::http to azure_core::http module since it is Azure-specific.Body, Request, and RequestContent from http::request module.create_enum, create_extensible_enum macros from typespec_client_core.Model and Response from http::response module.azure_core::credentials::TokenCredential::clear_cache()tokio features into a single feature named tokio. Traits remain separate but tokio support is enabled with a single feature.AppendToUrlQuery type under http module.ByteStream and SeekableStream types under stream module.ClientMethodOptions type under http module.ClientOptions type under http module.Context type under http module.Etag type under http module.ExponentialRetryOptions type under http module.FixedRetryOptions type under http module.headers module under http module.HttpClient type under http module.LeaseAction type under http module.LeaseDuration type under http module.LeaseState type under http module.LeaseStatus type under http module.Method type under http module.new_http_client function under http module.Pipeline type under http module.policies module under http module.request module under http module.response module under http module.RetryOptions type under http module.StatusCode type under http module.TelemetryOptions type under http module.TransportOptions type under http module.Url type under http module.content_type module.EMPTY_BODY constant from root.future!() macro.Header re-export from http module. It is still defined in the http::headers module.parsing module.query_param module.RequestId type alias from root.SessionToken type alias from root.lro module to http::poller module.lro module types with prefix "Lro" to prefix "Poller".tokio module to fs since it contained only the typespec_client_core::fs module members.### Features Added - Initial supported release.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Recreated by explicit maintainer request after unpublished pipeline run 6908412 failed due to test isolation. Includes the merged fix from #5397 . Sup
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →