Rust 官方默认的 Cargo 源服务器为 crates.io,其同时也是 Rust 官方的 crate 管理仓库,放置在 github。

    Cargo 的 “注册表源” 与 crates.io 本身相同。也就是说,Cargo 也有一个在 github 存储库中提供的索引。该存储库匹配 crates.io index 的格式,即 github 仓库 https://github.com/rust-lang/crates.io-index,由该存储库的索引指示下载包的配置。

    但是,正如我们在章节 3.1. 配置 Rust 工具链的国内源中提到过,Rust 官方服务器部署在北美洲,中国大陆用户下载速度较慢,甚至反复中断下载。因此笔者建议中国大陆用户使用国内镜像源,但如果你愿意等待较长时间,可以采用默认的官方源。

    提供了 Rust 工具链镜像源的站点,一般也会提供 Cargo 国内镜像源服务。目前,国内 cargo 镜像源有:清华大学源、中国科学技术大学源、上海交通大学源,以及 rustcc 社区源。

    Cargo 支持更换 crates.io 源索引,通过 $HOME/.cargo/config 文件配置。自定义 Cargo 源有两种方法,笔者推荐使用第一种:

    1. 创建 $HOME/.cargo/config 文件(各操作系统及版本均大致相同),然后在 config 文件内写入下述配置内容。其中协议推荐使用 git,但对于 https 和 git 协议,一般各镜像源都支持,并且是可以互换的。如果你所处的环境中不允许使用 git 协议,或者配置 git 协议后不能正常获取和编译 crate,可以换 https 协议再试试。
    1. [source.crates-io]
    2. registry = "https://github.com/rust-lang/crates.io-index"
    3. # 指定镜像
    4. replace-with = '镜像源名' # 如:tuna、sjtu、ustc,或者 rustcc
    5. # 注:以下源配置一个即可,无需全部
    6. # 中国科学技术大学
    7. [source.ustc]
    8. registry = "git://mirrors.ustc.edu.cn/crates.io-index"
    9. # 上海交通大学
    10. [source.sjtu]
    11. registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
    12. # 清华大学
    13. [source.tuna]
    14. registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
    15. # rustcc社区
    16. [source.rustcc]
    17. registry = "https://code.aliyun.com/rustcc/crates.io-index.git"
    1. 或者在项目工程结构中,与 Cargo.toml 同级目录的 .cargo 文件夹下创建 config 文件,config 文件配置方法和内容与第一种相同。

    关于 Cargo 的国内镜像源,笔者会及时收集、验证,以及综合测试。请定期查看、比较,以及更新,以便于提高你的开发效率。
    https://mirrors.gitcode.host/zzy/rust-crate-guide/4-cargo/4.1-source-replacement.html