Question about local version, remote version in Cargo?

why did rust allow there r two version local and and remote which have a same name ?
Are there any disadvantage ?
P/s:I got a error when I have used log(local version) and env_logger(from crates) ? (log can't display)

Crates from different sources are treated as completely separate crates, even if they have the same name.

You local log crate is just as different from the crates.io log crate as if it was called not_a_log_crate.

The exception is when you use [patch] section like [patch.crates-io]. Then you can change the crate's source (but can't change the version). You should use that if you want to customize an existing crate.

It is easier to maintain/update a large codebase when multiple versions are allowed. Not as appealing to manually audit though.

Crates with native links are case that only allow one copy.