rust常用工具

wxvirus2024年3月23日
大约 2 分钟

常用工具

pre-commit

pip install pre-commit

安装成功后运行pre-commit install

cargo deny

用于检查依赖的安全性

cargo install --locked cargo-deny

typos

拼写检查工具

cargo install typos-cli

git cliff

生产一个changelog的工具

cargo install git-cliff

nextest

rust 的增强测试工具

cargo install cargo-nextest --locked

cargo-generate

cargo install cargo-generate

问题

如果遇到一个

使用 cargo generate 会出现 unknown http scheme 'socks5'; class=Http (34)

可能是你的git设置了proxy

git config --global --unset http.proxy
git config --global --unset https.proxy

这样之后再次尝试即可

tokei

统计代码行数的工具

https://github.com/XAMPPRocky/tokeiopen in new window

# 我使用 cargo 安装
cargo install tokei

rustc

  • 查看版本

    rustc --version
    
  • 编译生成二进制文件

    rustc -o output_filename filename.rs
    
  • 编译生成库文件

    rustc --crate-type lib filename.rs
    

开发环境

  • 推荐: vscode

  • vscode插件

    • rust-analyzer
    • Error Lens
  • 隐式的使用rustc进行编译

  • 命令

    • 创建

      cargo new project_name
      
      # 创建一个新的 rust 库项目
      cargo new --lib project_name
      
    • 构建项目(生成二进制可执行文件或库文件)

      • cargo build
      • cargo build --release为生成优化的可执行文件,常用于生产环境
    • 检测

      • cargo check
    • 运行、测试

      • cargo run / cargo test

项目结构

  • project_name/
    • Cargo.toml
    • src/
      • lib.rs
  • 可执行二进制
  • project_name/
    • Cargo.toml
    • src/
      • main.rs

Cargo.toml文件

  • package
    • 设置项目名
    • 版本等
  • dependencies
    • 设置依赖
    • [build-dependencies]列出了在构建项目时需要的依赖项
    • [dev-dependencies]列出了只在开发时需要的依赖项

官方库

https://crates.ioopen in new window

cargo-edit

安装

cargo install cargo-edit

添加库

cargo add dependency_name

安装指定版本

cargo add dependency_name@1.2.3

添加开发时用的依赖库

cargo add --dev dev_dependency_name

添加构建时使用的依赖库

cargo add --build build_dependency_name

删除库

cargo rm dependency_name

# 删除开发时的
cargo rm --dev dependency_name

设置国内源

推荐rsproxy.cn https://rsproxy.cn/open in new window

文件: ~/.cargo/config

[source.crates-io]
replace-with = 'rsproxy-sparse'
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true

按照这个网站的介绍使用就行

Loading...