Rust环境准备

Rust环境准备

安装Rust

安装有助于Rust开发的vscode插件

  • crates: Rust 包管理
  • Even Better TOML: TOML 文件支持
  • Better Comments: 优化注释显示
  • Error Lens: 错误提示优化
  • GitLens: Git 增强
  • indent-rainbow: 缩进显示优化
  • Prettier - Code formatter: 代码格式化
  • REST client: REST API 调试
  • rust-analyzer: Rust 语言支持
  • Rust Test lens: Rust 测试支持
  • Rust Test Explorer: Rust 测试概览
  • TODO Highlight: TODO 高亮
  • vscode-icons: 图标优化
  • YAML: YAML 文件支持

cargo-generate

cargo是rust的包管理工具,类似python的pip。cargo-generate是rust的一个用于生成项目模板的工具包,它可以使用已有的github repo为模板来生成新的项目。

bash 复制代码
cargo install cargo-generate
cargo generate github-template-url

pre-commit

在创建一个项目是,执行pre-commit安装命令,

bash 复制代码
pre-commit install

会在本地生成一个pre-commit hook(.git/hooks/pre-commit),之后在提交代码时,pre-commit会先做一个基本的检查。

cargo-deny

cargo-deny是rust的一个用于检查依赖安全性的工具包。应用场景:如果项目中某个依赖是GPLv3那么这个项目代码必须开源,使用cargo-deny可以检查这个。

typos-cli git-cliff nextest

Cargo.toml

提交第一个pr

在本地先利用cargo-generate创建一个rust repo,并创建pre-commit hooks

bash 复制代码
mkdir -p /path/to/project-root; cd /path/to/project-root
cargo generate --git https://github.com/github-username/template-name
cd /path/to/project-root/project-name/
pre-commit install
git add .
git commit -a

之后在GitHub上创建一个remote repo,

再通过以下命令将本地repo关联到remote并push,

bash 复制代码
git remote add origin git@github.com:github-username/project-name.git
git branch -M main
git push -u origin main

创建pr

bash 复制代码
vim cliff.toml
git checkout -b temporary-branch
git commit -a
git push origin temporary-branch

之后在GitHub上可以看到上面创建的新分支,点击Compare & pull request,输入pr信息后创建新的pr(Create pull request),review后merge(建议以squash commit merge),merge后删掉新分支,这种新分支属于临时分支。


先看一下本地cliff.toml内容,是修改过后的url,因为本地分支是temporary-branch,checkout回main分支,再看cliff.toml内容,是修改前的url,将remote repo pull到本地,可以看到cliff.toml内容已经更新

bash 复制代码
vim cliff.toml 
git checkout main
vim cliff.toml 
git pull
vim cliff.toml 
相关推荐
土豆12501 小时前
Rust宏编程完全指南:用元编程解锁Rust的终极力量
rust·编程语言
myloveasuka4 小时前
Java与C++多态访问成员变量/方法 对比
java·开发语言·c++
2301_821700535 小时前
C++编译期多态实现
开发语言·c++·算法
Andya_net5 小时前
Spring | @EventListener事件机制深度解析
java·后端·spring
奥地利落榜美术生灬5 小时前
c++ 锁相关(mutex 等)
开发语言·c++
xixihaha13245 小时前
C++与FPGA协同设计
开发语言·c++·算法
重庆小透明5 小时前
【java基础篇】详解BigDecimal
java·开发语言
ID_180079054735 小时前
模拟1688商品详情的Python API实现,返回符合风格的JSON数据
开发语言·python·json
小小怪7505 小时前
C++中的函数式编程
开发语言·c++·算法
金山几座5 小时前
C#学习记录-事件
开发语言·学习·c#