I have a crate foo_sys
. In Rust 2015 I used extern crate foo_sys as foo
for convenience, but in Rust 2018 extern crate
isn't needed anymore and I don't want to use it only for aliasing. When dropping extern crate
, I get
error[E0463]: can't find crate for
foo
The idiomatic solution is to rename the crate in
Cargo.toml
. See the answer by Tim Diekmann for more information about that.But if you don't want to use
Cargo.toml
renaming for some reason, you can still use the old syntax. It's soft-deprecated, but not removed. So this still works:(Playground example)
This can be achieved with the rename-dependency Cargo feature, available in Rust 1.31. With this feature, it's possible to provide a package attribute to the dependencies:
Instead of writing
the
package
key can be added to the dependency inCargo.toml
: