Rust

Rust #

安装Rust #

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

设置rustup的镜像:

1# 临时替换
2# 清华源
3export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
4export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
5
6# 或使用阿里云源
7export RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup
8export RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup

安装rustup:

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

如果页面出现:

1Rust is installed now. Great!

表示已经安装成功。

Rust通过rustup工具进行安装和管理。如果已经安装过rustup,可以通过运行rustup update来更新安装。 更多信息可参阅rustup文档

配置PATH环境变量:

在Rust开发环境中,所有工具都安装在~/.cargo/bin目录下,这里是可以找到Rust工具链的地方,包括rustccargorustup。 因此,Rust开发者习惯将这个目录添加到他们的PATH环境变量中。在安装过程中,rustup会尝试配置PATH。由于不同平台、命令shell之间的差异以及rustup中的bug,对PATH的修改可能要到控制台重启或用户重新登录后才能生效,也可能完全不成功。 如果安装后在控制台运行rustc --version失败,这很可能就是原因所在。

如果想要卸载Rust,可以运行rustup self uninstall

VSCode扩展 #

安装必要的工具:

1apt update
2apt install build-essential

安装VSCode扩展:

  • rust-analyzer extension
  • CodeLLDB extension
  • Even Better TOML
  • Dependi, crates
  • Rust Syntax
  • Coverage Gutters extension
  • Rust Test Explore

codelldb扩展包比较大,需要手动安装(注意不要再code扩展里点安装,保持codelldb未安装状态,使用下面的命令手动安装):

1wget https://github.com/vadimcn/codelldb/releases/download/v1.10.0/codelldb-x86_64-linux.vsix
2code-server -vvv --install-extension ./codelldb-x86_64-linux.vsix

本机Rust开发环境的配置 #

配置carte.io仓库使用国内镜像 #

配置cargo对于crate.io仓库使用国内代理镜像,创建或编辑~/.cargo/config.toml:

 1[source.crates-io]
 2replace-with = 'rsproxy'
 3
 4[source.rsproxy]
 5registry = "https://rsproxy.cn/crates.io-index"
 6
 7[registries.rsproxy]
 8index = "https://rsproxy.cn/crates.io-index"
 9
10[net]
11git-fetch-with-cli = true

具体参考https://rsproxy.cn/

cargo edit #

安装cargo-edit:

1apt install libssl-dev
2apt-get install pkg-config
3cargo install cargo-edit

单元测试覆盖率 #

支持单元测试覆盖率显示:

  • cargo tarpaulin: 运行测试并分析你的Rust代码并提供代码覆盖率数据
  • cargo watch: 每次我们保存文件时,运行cargo tarpaulin
  • coverage gutters: 在VSCode中显示覆盖的代码行

安装cargo-tarpaulin:

1cargo install cargo-tarpaulin

cargo tarpaulin命令的更多参数详见

1cargo tarpaulin --out Lcov --output-dir target/tarpaulin

上面的命令在target目录里生成了lcov.info文件。

CMD+Shift+P输入Coverage Gutters: Watch输入后,会自动发现lcov.info文件,并在项目源码中显示测试覆盖率。

安装cargo-watch:

Cargo Watch监视你的项目的源代码是否有变化,并在变化发生时运行Cargo命令。

1cargo install cargo-watch
1cargo watch -x 'tarpaulin --out Lcov --output-dir target/tarpaulin'

性能优化:

1cargo watch -x 'tarpaulin --out Lcov --output-dir target/tarpaulin' -w src

其他工具 #

查看cargo install安装的所有工具和版本

1cargo install --list

cargo-generate #

cargo-generate是一个开发者工具,它通过利用预先存在的git仓库作为模板,帮助快速创建一个新的Rust项目。

cargo-deny #

cargo-deny是一个cargo插件,它允许您对项目的依赖关系图进行检查,以确保所有依赖项符合您的期望和要求。开发者可以定义规则,可以帮助开发者避免使用被禁止的包或不允许的开源许可证。

typos #

typos: 源代码拼写检查器。查找并纠正源代码中的拼写错误,速度足够快,可以在大型代码库中运行。

1cargo install typos-cli

git-cliff #

git-cliff可以通过利用约定式提交以及由正则表达式驱动的自定义解析器,从Git历史记录中生成变更日志文件。可以使用配置文件自定义变更日志模板,以匹配所需的格式。

nextest #

nexttest 是Rust的新一代测试运行器。

参考链接 #

© 2024 青蛙小白