Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I import multiple versions of the same crate?

As discussed in Is it documented that Cargo can download and bundle multiple versions of the same crate?, it's possible for Cargo to pull in multiple versions of the same crate for a single program. How do I access both of these versions concurrently?

like image 956
Shepmaster Avatar asked Dec 08 '22 11:12

Shepmaster


1 Answers

As of Rust 1.31, you can use the rename-dependency Cargo feature:

[dependencies]
futures_01 = { package = "futures", version = "0.1.0" }
futures_03 = { package = "futures", version = "0.3.0" }

You can choose whatever name you want for the key. The package attribute needs to be the official name of the crate.

Within your code, you can access version 0.1.x using the crate name futures_01, and version 0.3.x via futures_03.

See also:

  • How to idiomatically alias a crate in Rust 2018?
  • Why is a trait not implemented for a type that clearly has it implemented?
like image 112
Shepmaster Avatar answered Jan 22 '23 17:01

Shepmaster