Rust的开发环境与工具

[TOC]

开发环境安装

无论使用何种系统, 均可以根据 Rust 官方网站提供的 rustup-init 工具完成 Rust 的安装. rustup-init 下载地址:

https://www.rust-lang.org/zh-CN/tools/install.

网站会自动识别你的操作系统并给出提示, 遵循网站提示一步一步执行即可.

当安装完成后, 可使用以下命令进行测试, 如果正确输出版本号则表明安装已经成功.

代码语言:javascript
复制
$ rustc --version
  • Tips:如果你使用的是 Linux 系统, 那么在 rustup-init 运行完成后它会在命令行中提示你将软件安装目录加入 PATH 环境变量中. 对于 Windows 系统来说不需要这一步.

开发工具

使用 vscode 并配置 rust-analyzer 插件在目前看来是一个比较好的选择.

  1. 安装 vscode
  2. 在 vscode 的插件市场中, 安装 rust-analyzer 插件

rust-analyzer 包含代码提示, 代码检查, 自动补全等多种功能. 你可能会注意到在插件市场中存在一个标了小星星的名字就叫 Rust 的插件, 它的下载量与安装量都远远高于 rust-analyzer, 那么为什么不选择使用它呢? 因为这个排名第一的 Rust 插件底层使用的是名为 rls 的 Rust 前端, 由于 rls 本身性能过于捉急, 在 2020 年的时候社区推出了 rust-analyzer 项目并旨在全面替换掉 rls. 在体验上, rust-analyzer 要远远好于 rls.


Hello World

Cargo 是 Rust 默认的项目管理工具, 它几乎会贯穿你的整个 Rust 开发周期, 包括项目的创建, 引入第三方库, 编译, 测试和运行等. 使用如下命令可以创建一个新的 Rust 工程,rust-learn为工程名称:

代码语言:javascript
复制
$ cargo new rust-learn
  • Cargo 默认会携带 --bin 参数, 这意味着该项目是一个二进制程序. 如果要创建一个库, 我们需要传递 --lib.

生成的项目目录结构如下:

代码语言:javascript
复制
.
├── Cargo.toml
└── src
    └── main.rs
  • Cargo.toml 是项目的描述文件, 它里面保存了项目的依赖库, 项目的名称, 版本号等信息
  • src 是源码目录
  • src/main.rs 是项目的入口点

Cargo.toml的内容:

代码语言:javascript
复制
[package]
name = "rust-learn"  # 项目名称
version = "0.1.0"    # 版本号
edition = "2018"     # 最新的rust edition版本,即语法稳定版本

See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

依赖声明

[dependencies]

main.rs的内容:

代码语言:javascript
复制
fn main() {
println!("Hello, world!");
}

使用如下命令可以编译并运行项目:

代码语言:javascript
复制
$ cd rust-learn
$ cargo run

Compiling rust-learn v0.1.0 (W:\WorkSpace\Rust\rust-learn)
Finished dev [unoptimized + debuginfo] target(s) in 0.79s
Running target\debug\rust-learn.exe
Hello, world!

Cargo 里面有许多有用的命令, 一些常用的命令包括:

  • cargo new 生成新的项目模板
  • cargo build 构建项目, 生成可执行文件或依赖
  • cargo run 构建并运行项目
  • cargo test 运行测试用例
  • cargo check 检查项目代码, 由于 Rust 编译较慢, 因此在开发中常用 check 代替 build 命令
  • cargo doc 生成项目文档
  • cargo publish 将库发布到 crates.io

除了以上 cargo 自带的命令外, cargo 还支持安装额外的扩展命令, 例如格式化工具. rustfmt 是一个可以自定义风格的 rust 代码格式化工具, 使用如下命令安装它:

代码语言:javascript
复制
 rustup component add rustfmt</code></pre></div></div><p>在项目根目录输入以下命令, 会自动格式化项目内的全部 Rust 源文件:</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>javascript</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-javascript"><code class="language-javascript" style="margin-left:0"> cargo fmt