Rust入门-环境配置

前言

Rust 是一种系统级编程语言,它的设计目标是提供高性能、安全性和并发性。

Rust 的主要优势包括:

  1. 高性能:Rust 的编译器使用 LLVM 作为后端,能够生成高效的机器代码。同时,Rust 的内存管理机制可以避免内存泄漏和不安全的指针操作,进一步提高了程序的性能。
  2. 内存安全:Rust 的内存安全机制通过所有权和借用规则,避免了内存泄漏、野指针和缓冲区溢出等常见的安全问题。这使得 Rust 适用于编写高性能和安全性要求较高的系统级程序。
  3. 并发性:Rust 的所有权和借用规则,以及线程安全的数据类型,可以帮助开发者编写安全和高效的并发程序。
  4. 生态系统:Rust 拥有一个活跃的社区和丰富的包管理器 Cargo,开发者可以方便地使用已有的 Rust crate 来构建项目,也可以发布自己的 crate 给其他开发者使用。
  5. 可移植性:Rust 的编译器支持多种操作系统和 CPU 架构,可以在各种环境下编译和运行。

总之,Rust 是一种高性能、安全和并发的系统级编程语言,它的设计理念和特性使得它成为开发高性能、安全和可靠系统的优秀选择。

Rust安装

最后,请前往 https://www.rust-lang.org/zh-CN/tools/install 来安装 rustup (Rust 安装程序)。

下载镜像

添加环境变量

1
2
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup

测试

1
2
echo %RUSTUP_DIST_SERVER%
echo %RUSTUP_UPDATE_ROOT%

提示

这里我们使用的是清华大学 TUNA 的镜像源,它非常稳定且速度快。

你也可以选择中科大或阿里云的镜像源,地址如下:
中科大 (USTC)

1
2
RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

阿里云 (Aliyun)

1
2
RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup
RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup

Linux上

RUSTUP_DIST_SERVER (用于更新 toolchain):

1
export RUSTUP_DIST_SERVER="https://rsproxy.cn"

RUSTUP_UPDATE_ROOT (用于更新 rustup):

1
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"

安装

移除官方默认源

1
winget source remove winget

添加中科大镜像源

1
winget source add winget https://mirrors.ustc.edu.cn/winget-source

验证

1
winget source list

在 PowerShell 中使用 winget 命令安装程序:

1
winget install --id Rustlang.Rustup

查看版本

1
rustc --version

如果下载慢可以直接使用这个地址

https://mirrors.ustc.edu.cn/rust-static/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe

cargo镜像

crates.io index失败

解决方法

使用Rust crates.io 索引镜像

Windows下路径类似于

1
explorer %USERPROFILE%\.cargo

文件夹下创建config.toml文件。

注意旧版本是config,新版本是config.toml

config.toml

1
2
3
4
5
6
7
8
9
10
11
# 将 crates.io 默认源替换为 'ustc'
[source.crates-io]
replace-with = 'ustc'

# 定义 'ustc' 源的具体地址 (稀疏索引模式)
[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"

# 解决部分 Windows 下的 SSL 证书校验问题 (可选)
[http]
check-revoke = false

该镜像可加快 cargo 读取软件包索引的速度。

清华大学

1
2
3
4
5
6
7
8
[source.crates-io]
replace-with = 'tuna'

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

[http]
check-revoke = false

如何验证生效?
尝试在一个项目中运行

1
cargo update

如果瞬间完成,说明稀疏索引镜像配置成功;如果卡住不动,说明配置未生效或网络仍有问题。

开发工具

VSCode中安装插件rust-analyzer

IDEA中直接添加rust即可(收费)

包管理器

Rust 的包管理器叫做 Cargo,它是 Rust 官方提供的工具,用于构建、测试和管理 Rust 项目的依赖关系。

Cargo不用另外安装,Rust内就包含。

Cargo 有以下几个主要的功能:

  • 管理 Rust 项目的依赖关系,可以自动下载、编译和安装依赖项。
  • 提供命令行工具来构建、运行和测试 Rust 项目。
  • 管理项目的版本号和发布。

下面是一些常用的 Cargo 命令:

  • cargo new <project-name>:创建一个新的 Rust 项目。
  • cargo build:编译项目,并生成可执行文件或库。
  • cargo run:编译并运行项目。
  • cargo test:运行项目的测试用例。
  • cargo doc:生成项目的文档。
  • cargo clean:清理项目的编译输出。

如果已存在文件夹,可以进入文件夹内运行

1
cargo init

运行

1
cargo run

除了管理项目本身的依赖关系,Cargo 还可以管理系统级别的 Rust 依赖库,例如 Rust 标准库和其他常用的 Rust crate。

在使用 Cargo 管理 Rust 项目时,通常需要编辑项目根目录下的 Cargo.toml 文件,这个文件包含了项目的依赖关系和其他一些配置信息。

总之,Cargo 是 Rust 生态系统中非常重要的一个组成部分,它的出现使得 Rust 项目的管理和构建变得更加简单和高效。