admin 管理员组

文章数量: 1184232

1、Rust简介

Rust 是一种系统编程语言,由 Mozilla 研究院于 2010 年首次发布。它以安全性、并发性和高性能为核心设计目标,旨在提供类似于 C 和 C++ 的性能,同时避免这些语言中常见的内存安全问题(如空指针解引用、缓冲区溢出等)。Rust 通过其独特的所有权模型(Ownership Model)和借用检查器(Borrow Checker)在编译期强制执行内存安全,无需依赖垃圾回收机制。

Rust 的语法灵感来源于多种语言,包括 C++、Haskell 和 OCaml,具有现代化的开发体验,同时支持零成本抽象(Zero-Cost Abstractions),使得开发者可以在保持高性能的同时编写简洁易读的代码。

1.1、Rust能干什么?

Rust 的多功能性使其能够胜任多种任务,主要包括:

  • 系统编程:开发操作系统内核、设备驱动程序、嵌入式系统等。
  • Web 后端开发:构建高性能的 Web 服务器和 API 服务。
  • 网络编程:实现低延迟、高吞吐量的网络应用。
  • 数据处理与科学计算:处理大规模数据集或进行复杂的数学计算。
  • 游戏开发:用于开发游戏引擎或其他高性能组件。
  • 区块链开发:因其高效和安全的特性,广泛应用于智能合约和区块链框架。

应用场景:

  • 系统软件开发:如操作系统、文件系统、虚拟机等。
  • 云计算与分布式系统:构建可靠的分布式服务和微服务架构。
  • 嵌入式开发:适用于资源受限的硬件环境。
  • 工具链开发:如编译器、调试器和其他开发工具。
  • WebAssembly:使用 Rust编写高效的前端逻辑。
  • 数据库:如 TiKV、Sled 等高性能数据库的实现。
  • 机器学习与人工智能:支持 TensorFlow 和 PyTorch 的扩展模块。

1.2、Rust优缺点

优点:

  • 内存安全:通过所有权模型和严格编译时检查,避免了常见的内存错误。
  • 高性能:接近 C/C++ 的运行效率,没有运行时开销。
  • 并发友好:内置的线程安全机制使得多线程编程更加简单可靠。
  • 现代化的工具链:Cargo(包管理器和构建工具)极大提升了开发体验。
  • 跨平台支持:支持多种操作系统和硬件架构。
  • 活跃的社区:拥有快速成长的开源生态系统。

缺点:

  • 学习曲线陡峭:所有权和生命周期的概念对初学者来说较难掌握。
  • 编译时间较长:相比其他语言,Rust 的编译速度相对较慢。
  • 生态系统尚不完善:尽管增长迅速,但某些领域的库仍不如成熟语言丰富。

1.3、哪些公司在使用Rust

  • Mozilla:用 Rust 开发了下一代浏览器引擎 Servo,以及 Firefox 浏览器的部分组件。
  • 微软(Microsoft):在 Windows 操作系统的部分组件中引入 Rust,以提高安全性。使用 Rust 替代部分 C++代码,减少潜在的安全漏洞。
  • 亚马逊 (Amazon):AWS Lambda 的新运行时 Firecracker 基于 Rust
    构建,用于轻量级虚拟机管理。使用 Rust 开发云基础设施相关服务。
  • 谷歌 (Google):Fuchsia OS 部分模块使用 Rust实现。探索将 Rust 引入 Android 系统的关键组件。
  • Facebook / Meta:使用 Rust 开发 Libra(现为Diem)区块链项目。优化内部工具和服务。
  • Dropbox:核心文件同步引擎从 Python 迁移到 Rust,显著提升了性能。
  • Cloudflare:使用 Rust 构建高性能的边缘计算服务和防火墙规则引擎。
  • 华为:将 Rust 应用于嵌入式设备和通信协议栈开发。

1.4、前景

随着对软件安全性需求的不断增加,Rust 正逐渐成为系统编程领域的首选语言之一。尤其是在需要兼顾性能和安全性的场景下,Rust 展现出了巨大的潜力。无论是传统的系统开发还是新兴的区块链、AI 领域,Rust 都有广阔的应用前景。

总结来说,Rust 是一种兼具现代特性和底层控制能力的语言,适合那些希望突破传统语言局限并追求极致性能与安全性的开发者。

2、安装Rust

Rust默认使用的是C语言环境,也就是Visual Studio,当我们直接点击rustup-init.exe文件进行安装时,Visual Studio会默认安装到我们的C盘,会占用大量的C盘空间。
所以,我们需要采用轻量级的依赖包:mingw64

2.1、编译环境准备

直接访问GitHub进行下载,访问不了的可以选择翻墙😁。地址如下:https://github/niXman/mingw-builds-binaries/releases。

  • x86_64表示压缩包适用于64位的x86处理器架构。
  • posix:适用于符合POSIX标准的操作系统,如Linux、UNIX等;win32:适用于Windows操作系统。
  • seh:压缩包使用结构化异常处理(Structured Exception Handling)来处理异常。
  • msvcrt:MSVCRT是Microsoft Visual C++编译器的旧版运行时库,用于支持在Windows系统上使用Visual C++编译的程序。它提供了许多标准C库函数和C++运行时函数的实现,用于支持程序的运行和调试。MSVCRT通常与早期的Visual C++版本(如Visual Studio 2010及更早版本)相关联。
  • ucrt:UCRT是自Windows 10起引入的新一代运行时库,旨在提供更好的兼容性和性能。UCRT是一个通用的C运行时库,用于支持使用C语言编译的程序,而不仅仅是限于Visual C++编译器。它提供了对标准C库函数的更新实现,并支持一些新的C标准(如C11标准)。UCRT与较新版本的Visual C++(如Visual Studio 2015及更新版本)相关联。

综上所述,UCRT更新推荐开发使用,如果考虑兼容则用MSVCRT

因为我的电脑是Windows10,所以下载的是:x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev2.7z

(1)解压
将下载的x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev2.7z解压到磁盘,尽量路径上不要存在中文字符。

(2)配置环境变量
在Path环境变量下新增一个环境项,指向压缩包中bin目录。

(3)验证
在CMD或者powerShell中输入命令gcc --version就可以查看是否配置成功。

2.2、Rust环境准备

在安装Rust时,Rust会将依赖包等信息默认放在C盘下的~/.cargo目录,这个目录会随着我们项目依赖的增多而变大,就像Java中的Maven一样,所以我们需要将它配置到其他磁盘。

需要在环境变量中增加两个配置:CARGO_HOMERUSTUP_HOME
两个变量的路径指向执行的文件位置:


配置好上述的环境变量后,Rust在安装时就会把相应的文件放在指定位置而不放在C盘。

2.3、Rust安装

先从官网将安装包下载下来:https://rust.p2hp/

下载下来后是一个rustup-init.exe可执行文件。

(1)双击启动安装程序

  • 1)是要求必须安装C/C++的编译环境,默认是 visual studio安装器。
  • 2)是使用已经准备好的编译环境,我们已经配置好了mingw64,所以我们选择这个选择。

(2)安装C++构建工具

直接选择 Y

(3)自定义安装

选择 2 自定义安装。

(4)安装工具链
Rust默认的工具链是:x86_64-pc-windows-msvc。但是使用这个会在开发中碰到一些问题,所以我们不使用这个。
我们使用x86 64-pc-windows-gnu

(5)剩下的步骤都是直接回车,等待安装完成。

看到上述步骤就是安装完毕。

(6)验证
在CMD或者PowerShell中使用rustup --version命令就可以查看Rust是否安装成功。

通过rustc --version命令也可以查看Rust是否安装成功。

2.4、修改Cargo镜像

在CARGO_HOME指定的目录下创建一个config.toml的配置文件。

文件内容如下:

[source.crates-io]
registry = "https://github/rust-lang/crates.io-index"
 
# 具体使用的源
replace-with = 'aliyun'
 
### 配置多个源地址
# rsproxy
[source.rsproxy]
registry = "https://rsproxy/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy/index"
[registries.rsproxy]
index = "https://rsproxy/crates.io-index"
 
# 阿里源
[source.aliyun]
registry = "sparse+https://mirrors.aliyun/crates.io-index/" 
 
# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu/git/crates.io-index.git"
 
# 中国科学技术大学
[source.ustc]
registry = "https://mirrors.ustc.edu/crates.io-index/"
 
# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu/git/crates.io-index"
 
# rustcc社区
[source.rustcc]
registry = "https://code.aliyun/rustcc/crates.io-index.git"
 
[net]
git-fetch-with-cli=true

推荐两个Rust包的查询网站:

  1. https://crates.io/
  2. https://lib.rs/search

本文标签: 极速 全攻略 上手 环境 Windows