Skip to content

Bridge new azure_core (>0.21) with the legacy crates (azure_storage, etc.)Β #2635

@barabadzhi

Description

@barabadzhi

Feature Summary

The latest azure_core should more or less work with legacy crates that contain missing functionality.

Feature Description

We're utilizing azure_core together with several other azure_* crates, like azure_storage, etc.
And currently stuck on 0.21, because azure_core >0.21 has no clear backwards compatibility with legacy azure_* crates, making it unusable when more or less complex functionality (missing from current azure_core) is needed.

Possible solution - implement Into, From, TryFrom, etc. to bridge current primitives with legacy ones. Publish it under legacy_compat or similar feature, disabled by default.

For example, this would allow to use "new" Metadata with azure_strorage (legacy) expecting a "different" type, etc. It would ease transition to azure_core > 0.21 for real world applications.

Use Case

Real world apps using functionality from "legacy" azure_* crates.

Alternatives

Sticking to azure_core 0.21.

Additional Context

It is either impossible (intentional Rust constraint) or very cumbersome to implement the "conversion" to/from "legacy" types outside the azure_* crate.

UPD: The current stats on crates.io indicate azure_core 0.21downloads surpass all of the azure_core 0.22+ combined ca. 5-10x. Upgrading a dependency version in Rust is trivial by itself, so we can assume people are stuck with azure_core 0.21 for exactly this reason - lack of clear upgrade path/legacy_compat.

Metadata

Metadata

Labels

Azure.CoreThe azure_core crateAzure.IdentityThe azure_identity cratecustomer-reportedIssues that are reported by GitHub users external to the Azure organization.issue-addressedWorkflow: The Azure SDK team believes it to be addressed and ready to close.

Projects

Status

Untriaged

Status

Not Started

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions