curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh- crates: Rust 包管理
- Even Better TOML: TOML 文件支持
- Better Comments: 优化注释显示
- Error Lens: 错误提示优化
- GitLens: Git 增强
- Github Copilot: 代码提示
- 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 是一个用于生成项目模板的工具。它可以使用已有的 github repo 作为模版生成新的项目。
cargo install cargo-generate在我们的课程中,新的项目会使用 tyr-rust-bootcamp/template 模版生成基本的代码:
cargo generate tyr-rust-bootcamp/templatepre-commit 是一个代码检查工具,可以在提交代码前进行代码检查。
pipx install pre-commit安装成功后运行 pre-commit install 即可。
Cargo deny 是一个 Cargo 插件,可以用于检查依赖的安全性。
cargo install --locked cargo-deny检测依赖
cargo deny check -dtypos 是一个拼写检查工具。
cargo install typos-cligit cliff 是一个生成 changelog 的工具。
cargo install git-cliff生成changelog.md
git cliff -o CHANGELOG.mdcargo nextest 是一个 Rust 增强测试工具。
cargo install cargo-nextest --lockedcargo add anyhow经常有
anyhow:Ok;引用的问题
cargo add csvcargo add serde --features derive
cargo add serde-json
cargo add serde-yamlcargo add tomlcargo add base64cargo run -- base64 encode -i cargo.toml > fixtures/standard_b64.txt
cargo run -- base64 decode --format urlsafe -i fixtures/b64.txtcargo nextest run --all-features现在认为sha-1和md5都是都要比blake的差,以及处于淘汰的hash算法,是不安全的。
https://github.com/BLAKE3-team/BLAKE3
cargo add blake3cargo add ed25519_dalekcargo run -- genpass -l 32 > fixtures/blake3.txt
cargo run -- text sign -k fixtures/blake3.txt
>输入: hello
LJeaB_4zDSzWw_weWkVCvg9OMyWVEOKBD-yz_gpguiQ
cargo run -- text verify -k fixtures/blake3.txt --sig LJeaB_4zDSzWw_weWkVCvg9OMyWVEOKBD-yz_gpguiQ
>输入: hello
truecargo run -- text generate -o fixtures
Compiling rcli v0.1.0 (/Users/xxx/RustProjects/rcli)
Finished dev [unoptimized + debuginfo] target(s) in 0.70s
Running `/Users/xxx/.target/debug/rcli text generate -o fixtures`
TextKeyGenerateOpts { format: Blake3, output: "fixtures" }
cargo run -- text generate -o fixtures --format ed25519
Finished dev [unoptimized + debuginfo] target(s) in 0.03s
Running `/Users/xxx/.target/debug/rcli text generate -o fixtures --format ed25519`
TextKeyGenerateOpts { format: Ed25519, output: "fixtures" }
cargo run -- text sign -k fixtures/edd25519.sk --format ed25519
Compiling rcli v0.1.0 (/Users/xxx/RustProjects/rcli)
Finished dev [unoptimized + debuginfo] target(s) in 0.75s
Running `/Users/xxx/.target/debug/rcli text sign -k fixtures/edd25519.sk --format ed25519`
hello!
sign: VRT9gZx6jPIk14KtOBT9OwIrJvWS8ST__OgK6oPPH7nHzflH1SCHpSFPPjgEEhOXhPjPndK1k6ePIE4kDimGCA
cargo run -- text verify -k fixtures/edd25519.sk --format ed25519 --sig VRT9gZx6jPIk14KtOBT9OwIrJvWS8ST__OgK6oPPH7nHzflH1SCHpSFPPjgEEhOXhPjPndK1k6ePIE4kDimGCA
Finished dev [unoptimized + debuginfo] target(s) in 0.10s
Running `/Users/xxx/.target/debug/rcli text verify -k fixtures/edd25519.sk --format ed25519 --sig VRT9gZx6jPIk14KtOBT9OwIrJvWS8ST__OgK6oPPH7nHzflH1SCHpSFPPjgEEhOXhPjPndK1k6ePIE4kDimGCA`
hello!
false
cargo run -- text verify -k fixtures/edd25519.pk --format ed25519 --sig VRT9gZx6jPIk14KtOBT9OwIrJvWS8ST__OgK6oPPH7nHzflH1SCHpSFPPjgEEhOXhPjPndK1k6ePIE4kDimGCA
Finished dev [unoptimized + debuginfo] target(s) in 0.18s
Running `/Users/xxx/.target/debug/rcli text verify -k fixtures/edd25519.pk --format ed25519 --sig VRT9gZx6jPIk14KtOBT9OwIrJvWS8ST__OgK6oPPH7nHzflH1SCHpSFPPjgEEhOXhPjPndK1k6ePIE4kDimGCA`
hello!
true- rt
- rt-multi-thread
- marcos
这 3 个基本是必加的
cargo add tokio --features rt --features rt-multi-thread --features macros --features net --features fscargo add tracing
cargo add tracing-subscriber --features env-filter这样命令就可以使用RUST_LOG=debug cargo run的方式执行
RUST_LOG=info cargo run -- http servecargo add axum --features http2 --features query --features tracing### test index page
GET http://127.0.0.1:8080
HTTP/1.1 200 OK
content-type: text/plain; charset=utf-8
content-length: 11
date: Sun, 28 Apr 2024 15:26:49 GMT
hello world
cargo install --path .rcli
Simple program to deal with csv
Usage: rcli <COMMAND>
Commands:
csv Show csv, or convert CSV to other formats
genpass generate a random password
base64
text
http
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print versioncargo add enum_dispatchRUST_LOG=info rcli http serve
rcli text sign -k fixtures/ed25519.sk --format ed25519
rcli text generate -o fixtures --format ed25519
rcli text sign -k fixtures/ed25519.sk --format ed25519
rcli text verify -k fixtures/ed25519.sk --format ed25519 -sig fRrgj334WL-Z9M30ThWTRZldgUVH_uqjclGzSb3ReQAXvnzkmoXHoFyZ6zEY8bR0mT_mNPHmjVIprnC5-8W3CA
rcli text verify -k fixtures/ed25519.sk --format ed25519 --sig fRrgj334WL-Z9M30ThWTRZldgUVH_uqjclGzSb3ReQAXvnzkmoXHoFyZ6zEY8bR0mT_mNPHmjVIprnC5-8W3CA
rcli text verify -k fixtures/ed25519.pk --format ed25519 --sig fRrgj334WL-Z9M30ThWTRZldgUVH_uqjclGzSb3ReQAXvnzkmoXHoFyZ6zEY8bR0mT_mNPHmjVIprnC5-8W3C