Not entirely true. Rust (cargo) supports git-based crates and more crate sources than just crates.io (registry = "crates-io"), however crates on crates.io doesn't currently support dependencies with crates in other registries.

    somecrate = { git = "https://...." }
    other-crate = { version = "1.0", registry = "my-registry" } 
It also supports source replacement downstream:

https://doc.rust-lang.org/cargo/reference/source-replacement...

crates.io could be updated to support alternative registries.