【Rust 易学教程】学前准备:Cargo, 你好

2023-12-27 14:30

本文主要是介绍【Rust 易学教程】学前准备:Cargo, 你好,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当你开始学习 Rust 时,很快就会遇到 Cargo,它是 Rust 生态系统中用于构建和运行 Rust 应用程序的标准工具。在 《Rust 易学教程》 首篇中,我会简要概述一下 Cargo 是什么,以及它如何适应更广泛的生态系统。

安装

请按照 https://rustup.rs/ 上的说明操作。在终端中运行以下命令,然后按照说明操作。

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

在这里插入图片描述

这将提供 Cargo 构建工具(Cargo)和 Rust 编译器(rustc)。同时,你还将获得 rustup,它是一个命令行程序,你可以使用它安装不同的编译器版本。

在安装 Rust 之后,你应该配置你的编辑器或IDE来使用 Rust。大多数编辑器通过与rust-analyzer 来实现这一点,rust-analyzer 为VS Code、Emacs、Vim/Neovim和许多其他编辑器提供自动完成和跳转到定义功能。还有一个你可能没听说的 IDE 叫做[RustRover](https://www.jetbrains.com/rust/)

在 Debian/Ubuntu 上,你也可以通过 apt 安装 Cargo、Rust 源代码和 Rust 格式化程序。然而,这会让你得到一个过时的 Rust 版本,并可能导致意想不到的行为。命令如下:
sudo apt install cargo rust-src rustfmt

Rust 生态

Rust 的生态系统由许多工具组成,其中主要的是:

  • rustc: Rust 编译器,将 .rs 文件转换为二进制文件和其他中间格式。
  • cargo: Rust 依赖管理器和构建工具。Cargo 知道如何下载依赖项(通常托管在 https://crates.io 上),并且在构建项目时将它们传递给 rust。Cargo 还带有一个内置的测试运行器,用于执行单元测试。
  • rustup:Rust 工具链安装程序和更新程序。此工具用于在发布新版本的 Rust 时安装和更新 Rust 和 cargo。此外,rust 还可以下载标准库的文档。你可以同时安装多个版本的 Rust,并且 Rust 可以让你根据需要在它们之间进行切换。
  • Rust 有一个快速的发布计划,每六周发布一个新版本。新版本保持了与旧版本的向后兼容性,而且它们还支持新功能。
  • 有三个发布渠道: “stable”, “beta”, 和 “nightly”。
  • 新功能是 “nightly” 测试,“beta” 是每六周 “stable”一次。
  • 还可以从其他注册表、git、文件夹等中解析依赖项。
  • Rust 也有版本: 当前的版本是 Rust 2021。之前的版本是 Rust 2015 和 Rust 2018
    • 允许版本对语言进行向后不兼容的更改。
    • 为了防止破坏代码,版本是可选择的: 你可以通过 Cargo.toml 文件为你的 crate 选择版本。
    • 为了避免分裂生态系统,Rust 编译器可以混合为不同版本编写的代码。
    • 值得一提的是,不通过 cargo 直接使用编译器是非常罕见的,大多数用户从不这样做。
    • Cargo本身是一个非常强大和全面的工具。它具有许多高级功能,包括但不限于:
      • Project/package structure
      • workspaces
      • 开发依赖和运行时依赖管理/缓存
      • 构建脚本
      • 全局安装
      • 它还可以通过子命令插件(如cargo clippy)进行扩展。

更多阅读,请参考官方的 Cargo 手册。

Rust 代码示例

《Rust 易学教程》 中,我们将主要通过可以通过浏览器执行的示例来探索 Rust 语言。这样能使得配置更容易,并确保每个人都有一致的体验。

但我仍然鼓励你安装 Cargo: 它将使你更容易进行练习。在教程的最后一部分,我们将做一个更大的练习,向你展示如何使用依赖关系,为此需要使用到 Cargo。

fn main() {println!("Edit me!");
}

使用 Cargo 在本地运行代码

如果你想在自己的电脑上试验这些代码,你需要首先安装Rust。按照 Rust Book 中的说明进行操作。在撰写本教程时,最新的稳定 Rust 版本号如下:

% rustc --version
rustc 1.69.0 (84c898d65 2023-04-16)
% cargo --version
cargo 1.69.0 (6e9a83356 2023-04-12)

你也可以使用任何更高的版本,因为 Rust 保持向后兼容性。

在此基础上,按照以下步骤从本文中的一个示例构建 Rust 二进制文件:

  1. 单击要复制的示例上的“复制到剪贴板”按钮。
  2. 使用 cargo new exercise 为你的代码创建一个新的 exercise/ 目录:
$ cargo new exerciseCreated binary (application) `exercise` package
  1. 导航到 exercise/ 并使用 cargo run 来构建和运行二进制文件:
$ cd exercise
$ cargo runCompiling exercise v0.1.0 (/home/mgeisler/tmp/exercise)Finished dev [unoptimized + debuginfo] target(s) in 0.75sRunning `target/debug/exercise`
Hello, world!
  1. 用你自己的代码替换src/main.rs中的代码。例如:
fn main() {println!("Edit me!");
}
  1. 使用 cargo run 来构建并运行更新后的二进制文件:
$ cargo runCompiling exercise v0.1.0 (/home/mgeisler/tmp/exercise)Finished dev [unoptimized + debuginfo] target(s) in 0.24sRunning `target/debug/exercise`
Edit me!
  1. 使用 cargo check 快速检查项目的错误,使用 cargo build 编译它而不运行它。对于正常的调试构建,将在 target/debug/ 中找到输出。使用 cargo build -releasetarget/release/ 中生成一个优化的 release build
  2. 你可以通过编辑 Cargo.toml 为你的项目添加依赖项。当运行 cargo 命令时,它将自动为你下载并编译缺少的依赖项。

下一篇:

【Rust 易学教程】第 1 天:Rust 基础,基本语法

这篇关于【Rust 易学教程】学前准备:Cargo, 你好的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/543424

相关文章

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J