Cargo| Rust

Rust 是一门专注于 安全性、速度和并发性 的现代系统编程语言。它让你能够编写高性能、高可靠性的底层软件(如操作系统、游戏引擎、浏览器组件),同时又能享受到高级语言的开发体验。

rustup 是 Rust 编程语言的官方工具链管理器,主要用于 rust 的安装、更新,以及多版本管理版。

cargo 是 Rust 的包管理器和构建工具。负责管理项目、下载第三方库(包)、编译代码、运行测试等。

Cargo 仓库 是 Rust 的官方软件包仓库,用于发布、存储和分发 Rust 的所有软件包。

rustc 是 Rust 编译器。将 Rust 源代码编译成机器码的核心程序,通常通过 cargo 来调用。

在进行 Rust 开发时,可以先通过 rustup 安装 Rust 编译器,然后通过 cargo 创建项目并开始编写代码,最后再由 rustc 编译成可执行文件。

但是,在国内访问Cargo 仓库 的速度较慢,一般需要通过配置来加速资源的下载。

🔧 如何配置加速

配置 rustup 镜像

在终端中执行以下命令,将环境变量写入 shell 配置文件(如 ~/.bashrc~/.zshrc )。以下以清华源为例:

echo 'export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup' >> ~/.bashrc
echo 'export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup' >> ~/.bashrc
source ~/.bashrc  # 使配置立即生效

# 安装 rustup
curl https://sh.rustup.rs -sSf | sh

配置 Cargo 镜像

在用户目录下的 .cargo 文件夹中创建或修改 config.toml(或 config)文件,并添加以下内容(以清华稀疏索引为例):

  • Linux/MacOS: ~/.cargo/config.toml
  • Windows: %USERPROFILE%\.cargo\config.toml
[source.crates-io]
replace-with = 'tuna'

[source.tuna]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"

# 可选:让 Git 通过命令行操作,提升稳定性
#[net]
#git-fetch-with-cli = true

建议:

  • 优先尝试稀疏索引:如果你的 cargo 版本 >= 1.68(可通过 cargo -V 查看),强烈建议使用表中 sparse+https:// 开头的地址。它无需克隆整个索引仓库,速度更快。
  • 仅需一个源:配置时只需启用一个 [source.xxx] 即可,多个源可能造成冲突。

🚀 更多镜像源

清华大学的镜像

推荐方式。速度快,资源占用少,需 cargo 1.68+。

  • 配置 rustup
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
curl https://sh.rustup.rs -sSf | sh
  • 配置 Cargo
[source.crates-io]
replace-with = 'tuna'
[source.tuna]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"

中国科学技术大学的镜像

速度稳定,需 cargo 1.68+。

  • 配置 rustup
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
  • 配置 Cargo
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"

华中科技大学 HUST

  • 配置 rustup
export RUSTUP_DIST_SERVER=https://mirrors.hust.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.hust.edu.cn/rust-static/rustup
curl https://sh.rustup.rs -sSf | sh
  • 配置 Cargo
[source.crates-io]
replace-with = 'hust'
[source.hust]
registry = "sparse+https://mirrors.hust.edu.cn/crates.io-index/"

阿里云 Aliyun

  • 配置 rustup
export RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rust-static/rustup
curl https://sh.rustup.rs -sSf | sh
  • 配置 Cargo
[source.crates-io]
replace-with = 'aliyun'
[source.aliyun]
registry = "sparse+https://mirrors.aliyun.com/crates.io-index/"

上海交通大学 SJTUG

  • 配置 rustup
export RUSTUP_DIST_SERVER=https://mirrors.sjtug.sjtu.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.sjtug.sjtu.edu.cn/rust-static/rustup
curl https://sh.rustup.rs -sSf | sh
  • 配置 Cargo
[source.crates-io]
replace-with = 'sjtug'
[source.sjtug]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index/"