写点什么

Rust 入门指南(rustup, cargo)

作者:王泰
  • 2022 年 7 月 28 日
  • 本文字数:2048 字

    阅读完需:约 7 分钟

为什么使用 Rust ?

Rust 是一种系统级编程语言,rust-lang.org 有一个很棒的定义:

 

一种使每个人都能够构建可靠和高效软件的语言。

我喜欢 Rust,它不仅强大而且非常安全。它的所有权模型可以消除许多常见错误。但是对于 C#、Java 和 JavaScript 等语言的程序员来说,学习曲线可能有点陡峭。

本文旨在对 Rust 及其工具链进行简单的介绍。如果想深入地了解可以看下面的内容

  • Rust 网站的 Learn 部分(https://www.rust-lang.org/learn)

  • Herbert Wolverson 的 Hands on Rust (https://hands-on-rust.com/)

我们开始入门 Rust 吧!

首先你需要一个开发环境,你可以使用本地的环境,但我们推荐使用 https://GeekCode.cloud 云开发环境,上面有 Rust 的依赖库和编译加速功能,可以让你更方便的使用 rust 功能。打开 GeekCode 后我们选择 Rust 环境,就可以操作下面的命令了。

安装 Rust

有几种方法可以在你的系统上安装 Rust(你甚至可以在不安装的情况下试用它(https://geekcode.cloud))。有两个关键组成部分需要了解:

  • rustup 是一个命令行工具,它可以作为编译器的工具链。

  • cargo 是用于管理 projects、crates(rust 包)的命令行,并且是我们在处理 Rust 项目时最常使用的工具。

我们可以:

我们安装了 rustup 或直接使用云环境后,可以尝试以下命令:

  • 测试你的安装$ rustup -v

  • 检查更新$ rustup check

  • 更新你的安装$ rustup update

现在我们的 Rust 已经开始运行了,让我们进入 cargo

Cargo — Rust 构建工具和包管理器

Cargo cli 工具是我们最常使用的工具。 它负责运行构建、运行测试和准备项目以供发布。 我们还用 cargo 打包 Rust(在 Rust 中包被称为 crates),我们可以在 crates.io 上查看全部的 crate。

首先,我们来创建一个项目,然后了解一些常见的 cargo 选项。

建立一个新项目

$ cargo new {project_name}

  • 创建一个新的 Hello World 程序,它使用默认项目结构、*main.rs* 文件和 Cargo.toml 项目文件。

  • 默认情况下,这是一个二进制应用程序(如果我们需要开发 library / crate,添加-lib 选项)。

  • 默认情况下,Git 已初始化(可以使用其他开关自定义/禁用 )

  • 最好坚持使用 _snake_case 来命名,因为这是 Rust 规范。

Cargo 基础知识

$ cargo check

  • 验证程序结构——这不会编译我们的程序,但会确保项目文件结构正确

$ cargo build

  • 在调试模式下构建应用程序

  • 如果它不存在,这将在项目的根目录中创建一个 target 文件夹

  • 添加 -release 切换到 release 模式构建(见下文)

$ cargo clean

  • 清理(即删除)构建文件,比如构建期间生成的任何二进制文件

$ cargo run

  • 运行程序 - 如果尚未构建,这也将构建应用程序

$ cargo test

  • 运行项目中存在的任何测试(默认脚手架中不会有任何测试)

Cargo target — Release vs Debug

默认情况下,cargo build 和 cargo run 将在 DEBUG 模式下构建项目。要构建项目以发布到生产环境,请将 --release 参数添加到 cargo —

$ cargo [build|run] --release

当你构建一个 Rust 项目时,无论结果如何,都会创建一个 target 文件夹,并在其下方提供相关的构建配置。在 DEBUG 中构建时,文件夹结构将如下所示 -

…/project_root/target/debug/{build artefacts}

Rust 是一种编译语言,这意味着默认情况下,将使用运行的机器架构编译进行构建工作。 Rust 还支持交叉编译,允许我们构建二进制文件在其他架构上执行。

例如,Rust 编译为 WebAssembly (https://www.rust-lang.org/what/wasm)!,我们可以像这样在 cargo build 命令中添加一个目标——

$ cargo build --release --target=wasm32-unknown-unknown

这将创建以下文件夹结构(需要添加 --release 参数,和生成的子文件夹)-

…/project_root/target/wasm32-unknown-unknown/release/{build artefacts}

代码格式化

Rust 有一个内置的格式化程序,你可以阅读这里 (https://github.com/rust-lang/rustfmt)。 安装后,我们可以运行 -

$ cargo fmt

这会将代码格式化为 Rust 编码标准。 如果我们想自定义样式,可以通过 添加 rustfmt.toml 在你的项目。

Clippy — 代码提示和建议

Rust 有一个用于代码提示和指导的内置工具(即 linter),称为 clippy,详细内容在 Clippy 的 GitHub 页面(https://github.com/rust-lang/rust-clippy) 。运行 clippy 将分析代码并为我们提供建议和改进:

$ cargo clippy

我们可以通过多种方式配置 Clippy,但对于初学者使用 clippy 严格建议非常有帮助。 只需在我们的 main.rs中首行添加:

#![warn(clippy::all,clippy::pedantic)]

复制代码

Clippy 的建议有很多级别,但默认 pedantic 级别审查,通常已经足够。

总结

我们现在应该能够创建一个新的 Rust 项目并且对 Rust 工具链、linter 和建议有一个很好的了解。

Rust 标准库虽然很棒,但我们仍需要利用 Rust 社区贡献的许多第三方库。

所以接下来,我们会继续介绍 Rust 的包管理。

Stay Rusty!

发布于: 14 小时前阅读数: 9
用户头像

王泰

关注

还未添加个人签名 2011.07.21 加入

GeekCode.Cloud 创始人

评论

发布
暂无评论
Rust 入门指南(rustup, cargo)_rust_王泰_InfoQ写作社区