当前位置: 首页 > article >正文

rust学习-初识rust

rust学习-初识rust

  • 什么是 Rust?
  • Rust 的特点
  • 什么是 Cargo?
  • Cargo 的主要功能
  • 使用 Cargo 创建和管理项目
  • Cargo.toml 文件详解
  • 常用 Cargo 命令
  • 什么是 Rustup?
  • Rustup 的主要功能
  • 安装 Rustup
  • 验证安装
  • 使用 Rustup 管理工具链
  • 使用 Rustup 管理目标平台
  • 使用 Rustup 管理组件
  • 使用 Rustup 管理配置文件

什么是 Rust?

Rust 是一种系统编程语言,由 Mozilla 研究院开发并于 2012年首次发布。它旨在提供内存安全、并发安全和零成本抽象的特性,同时保持高性能。Rust 的设计目标是替代 C++在系统编程中的地位,特别是在需要高性能和安全性的场景中

Rust 的特点

  1. 内存安全:Rust 通过其所有权系统(Ownership System)和借用检查器(Borrow Checker)来保证内存安全,避免常见的内存错误如空指针、悬空指针和数据竞争
  2. 零成本抽象:Rust 可使用高级抽象,而不需要为此付出运行时性能的代价。这使得代码既安全又高效
  3. 并发安全:Rust 的类型系统和所有权模型确保了并发代码的安全性,避免数据竞争
  4. 跨平台支持:Rust 可以在多种平台上运行,包括 Linux、Windows、macOS 等
  5. 社区和生态:Rust 有一个活跃的开源社区,提供了丰富的库和工具,形成了强大的生态系统

什么是 Cargo?

Cargo 是 Rust 的包管理器和构建系统。它负责管理项目的依赖、编译代码、运行测试以及发布包。Cargo 使得 Rust项目的管理变得更加简单和高效

Cargo 的主要功能

  1. 项目创建:Cargo 可快速创建一个新的 Rust 项目
  2. 依赖管理:Cargo 可自动下载和管理项目所需的依赖库
  3. 构建系统:Cargo 负责编译项目,并处理所有的编译选项和优化
  4. 测试运行:Cargo 可以运行项目的单元测试和集成测试
  5. 发布管理:Cargo 可以将项目打包并发布到 crates.io(Rust 的官方包仓库)

使用 Cargo 创建和管理项目

  1. 安装 Rust 和 Cargo
    首先需要安装 Rust 和 Cargo。可以通过以下命令安装:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装完成后,Rust 和 Cargo 将会自动安装到你的系统中

  1. 创建新项目
    可通过以下命令创建一个新的项目:
cargo new hello_world

这条命令会创建一个名为 hello_world 的目录,并在其中生成一个新的 Rust 项目

生成的项目结构如下:

hello_world/
├── Cargo.toml
└── src
    └── main.rs
  • Cargo.toml 是项目的配置文件,包含了项目的基本信息和依赖
  • src/main.rs 是项目的主代码文件,默认包含一个简单的 “Hello, world!” 程序
  1. 构建和运行项目
    在项目目录中,可以使用以下命令来构建和运行项目:
cargo build

这条命令会编译项目,并在 target/debug 目录下生成可执行文件

要运行项目,可以使用:

cargo run

这条命令会先编译项目(如果代码有变化),然后运行生成的可执行文件

  1. 添加依赖
    Rust 项目通常依赖于外部的库,可以在 Cargo.toml 文件中添加依赖项。例如,假设若想要使用 rand 库来生成随机数,可以在 Cargo.toml 中添加以下内容:
[dependencies]
rand = "0.8"

保存文件后,运行 cargo build,Cargo 会自动从 crates.io 下载并编译 rand 库

  1. 运行测试
    Rust 内置了对单元测试的支持,可以在代码中编写测试函数,并使用 Cargo 运行这些测试
    例如,在 src/main.rs 中添加一个简单的测试:
#[cfg(test)]
mod tests {
    #[test]
    fn it_works() {
        assert_eq!(2 + 2, 4);
    }
}

然后运行测试:

cargo test

Cargo 会自动查找并运行所有的测试函数

  1. 发布项目
    当准备好发布项目时,可以使用 cargo build --release 来生成优化的构建版本:
cargo build --release

生成的可执行文件将位于 target/release 目录下,并且经过了充分的优化,适合用于生产环境

Cargo.toml 文件详解

Cargo.toml 是 Cargo 的配置文件,包含了项目的基本信息和依赖项。以下是 Cargo.toml 的一个示例:

[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"

[dependencies]
rand = "0.8"

[build-dependencies]
cc = "1.0"

[dev-dependencies]
tempfile = "3.1"

[features]
default = []

[profile.dev]
opt-level = 1

[profile.release]
opt-level = 3
  • [package]:定义了项目的基本信息,如项目名称、版本号和使用的 Rust 版本
  • [dependencies]:列出了项目所依赖的外部库及其版本号
  • [build-dependencies]:列出了构建项目时所需的依赖库
  • [dev-dependencies]:列出了仅在开发环境中使用的依赖库,例如测试工具
  • [features]:用于定义项目的功能特性,可以在编译时启用或禁用某些功能
  • [profile.dev] 和 [profile.release]:定义了不同构建配置下的编译选项

常用 Cargo 命令

  • cargo new :创建一个新项目
  • cargo build:编译项目
  • cargo run:编译并运行项目
  • cargo test:运行项目的测试
  • cargo check:检查代码的语法和类型,但不进行编译
  • cargo update:更新项目的依赖
  • cargo doc:生成项目的文档
  • cargo publish:将项目发布到 crates.io

什么是 Rustup?

Rustup 是 Rust 的官方工具链管理工具。可轻松地安装、管理和切换不同版本的 Rust编译器(rustc)和相关的工具链。Rustup 是 Rust 生态系统的重要组成部分,它使得开发者能够在不同的 Rust版本之间无缝切换,并且能够轻松地安装和管理 Rust 的工具链

Rustup 的主要功能

  1. 安装 Rust:Rustup 是安装 Rust 的推荐方式。它不仅可以安装 Rust 编译器,还可以安装 Cargo、Rust 文档和其他工具
  2. 管理工具链:Rustup 可安装和管理多个 Rust 工具链。你可以轻松地在稳定版、测试版和 nightly 版之间切换
  3. 更新 Rust:Rustup 可以自动检查并更新 Rust 工具链到最新版本
  4. 跨平台支持:Rustup 支持多种操作系统,包括 Linux、Windows 和 macOS
  5. 自定义工具链:Rustup 可安装自定义的工具链,例如针对特定目标平台的工具链

安装 Rustup

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

这条命令会下载并运行 Rustup 的安装脚本,安装过程中,可选择默认的安装选项,或者根据需要进行自定义配置
安装完成后,Rustup 会自动将 Rust 工具链添加到对应的系统路径中

验证安装

安装完成后,可以通过以下命令验证 Rust 和 Rustup 是否安装成功:

rustc --version
cargo --version
rustup --version

这些命令会分别输出 Rust 编译器、Cargo 和 Rustup 的版本信息

使用 Rustup 管理工具链

  1. 安装不同的工具链
    Rustup 可安装多个 Rust 工具链。可以通过以下命令安装不同的工具链:
  • 稳定版(Stable):这是 Rust 的稳定版本,适合大多数生产环境
rustup toolchain install stable
  • 测试版(Beta):这是 Rust 的测试版本,包含了即将发布的稳定版功能
rustup toolchain install beta
  • Nightly 版:这是 Rust 的每日构建版本,包含了最新的功能和实验性特性
rustup toolchain install nightly
  1. 切换工具链
    可以使用 rustup default 命令来切换默认的工具链。例如,切换到 nightly 版:
rustup default nightly

可以在特定项目中使用不同的工具链,而不影响全局默认设置。例如,在项目目录中运行:

rustup override set nightly

这条命令会为当前项目设置 nightly 工具链

  1. 列出已安装的工具链
    可以使用以下命令列出所有已安装的工具链:
rustup toolchain list
  1. 更新工具链
    Rustup 可以自动检查并更新已安装的工具链。可以通过以下命令更新所有工具链:
rustup update
  1. 卸载工具链
    如果不再需要某个工具链,可以使用以下命令卸载它:
rustup toolchain uninstall nightly

使用 Rustup 管理目标平台

Rustup 可为不同的目标平台安装和配置工具链。例如可为交叉编译安装目标平台的工具链

  1. 添加目标平台
    可以使用以下命令为目标平台添加工具链。例如,为 x86_64-unknown-linux-musl 目标平台添加工具链:
rustup target add x86_64-unknown-linux-musl
  1. 列出已安装的目标平台
    可以使用以下命令列出所有已安装的目标平台:
rustup target list
  1. 移除目标平台
    如果不再需要某个目标平台,可以使用以下命令移除它:
rustup target remove x86_64-unknown-linux-musl

使用 Rustup 管理组件

Rustup 可安装和管理 Rust 的组件,例如 rust-docs、rust-src 和 clippy

  1. 安装组件
    可以使用以下命令安装组件。例如,安装 rust-docs 组件:
rustup component add rust-docs
  1. 列出已安装的组件
    可以使用以下命令列出所有已安装的组件:
rustup component list
  1. 移除组件
    如果不再需要某个组件,可以使用以下命令移除它:
rustup component remove rust-docs

使用 Rustup 管理配置文件

Rustup 可管理不同的配置文件,例如 default、minimal 和 complete。这些配置文件定义了安装 Rust时包含的组件

  1. 查看当前配置文件
    可以用下命令查看当前的配置文件:
rustup show profile
  1. 切换配置文件
    可以使用以下命令切换配置文件。例如,切换到 minimal 配置文件:
rustup set profile minimal

http://www.kler.cn/a/463292.html

相关文章:

  • 如何利用 ClickHouse 实现高级分析:MySQL 到 ClickHouse 实时数据同步指南
  • 详细的一条SQL语句的执行流程
  • 物联网控制期末复习
  • js的一些处理
  • 重学 Android 自定义 View 系列(十):带指针的渐变环形进度条
  • GXUOJ-算法-补题:22级《算法设计与分析》第一次课堂练习
  • 基于OAuth2.0和JWT规范实现安全易用的用户认证
  • [MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
  • WireShark4.4.2浏览器网络调试指南:TCP传输包分析(七)
  • TCP/IP协议簇常见协议信息
  • 打造电竞比分网:用Java和Vue实现赛事实时数据与直播功能
  • 【HarmonyOS之旅】ArkTS语法(二) -> 动态构建UI元素
  • 【Ubuntu使用技巧】Ubuntu22.04无人值守Crontab工具实战详解
  • 攻防靶场(29):目录权限和文件权限 ICMP
  • cursor 配置 deepseek 后,无法使用 cursor 的 Composer问题
  • datalist的作用?怎么用的?
  • C之(14)gcov覆盖率
  • SpringBoot使用Nacos进行application.yml配置管理
  • Markdown如何导出Html文件Markdown文件
  • H3C无线产品案例汇编
  • RC充电电路仿真与分析
  • 关于 PPPOE技术的详细解释
  • LLaMA:开放和高效的基础语言模型集
  • 主流在售AI电子宠物产品
  • STM32裸机开发转FreeRTOS教程
  • Unity is running as administrator解决办法