rust_use_tools
rust 用例工具箱
工作空间
- 运行指定的包
cargo run -p app_tools
- 运行指定的包, 包中存在多个二进制crate
cargo run -p app_tools --bin app_tools
- 编译指定的包, 包中存在多个二进制crate
cargo build
cargo build -p app_tools
cargo build -p app_tools --bin app_tools
cargo 用法
- 编译(Linux环境程序)
cargo build --release --target x86_64-unknown-linux-gnu
- 编译(Windows环境程序)
sudo apt install mingw-w64
cargo build --release --target x86_64-pc-windows-gnu
- 文件监听与编译
cargo install cargo-watch
cargo watch -s "cargo clippy && cargo build && RUST_BACKTRACE=1 cargo test && RUST_BACKTRACE=1 cargo run"
- 代码覆盖工具
cargo install cargo-tarpaulin
cargo tarpaulin --ignore-tests
- 代码质量检查
cargo clippy
编译参考文档
- https://www.cnblogs.com/007sx/p/15191400.html
- Rust 交叉编译与条件编译总结
- 如何在Linux操作系统上交叉编译Rust程序?
- Rust交叉编译Mac编译Linux/Windows平台
- 减少rust编译后程序体积
工具库
- yaml 读取yaml文件 serde_yaml
- email 发送邮件 lettre lettre_email
- 打开链接或文件 webbrowser/opener
- 日志 log4rs/tracing
- 序化、反序化 serde_json
- CSV读写器 csv
- excel 读写 calamine(reader)/umya-spreadsheet/excelize-rs/xlsxwriter-rs/xlsx-rs/calamine(reader)/teletypewriter
- 时间库 chrono
- 网络请求 Reqwest
- uuid
- md5
- dotenv 用于设置环境变量,实现开发或测试环境切换。
- 文件夹操作 std::fs
- 文件路径操作 std::path::Path
- 单例模式/全局变量
- web服务 Rocket
- GUI Tauri
- SQL sqlx 一种异步、纯Rust†SQL板条箱,具有编译时检查查询功能,没有DSL。
- rbatis 高性能、安全、动态 SQL(编译时)ORM 框架
- 基于属性的测试库 proptest
- 把Go或其他c-lib库混入Rust libloading
- Cargo Watch监视项目的源代码以获取更改,并在更改发生时运行Cargo命令. cargo-watch
- 代码覆盖工具 cargo-tarpaulin
- QuickCheck 一种使用随机生成的输入进行基于属性的测试的方法。
- speculate 受RSpec启发的最小锈蚀测试框架。
- parking_lot 比Rust标准库更小、更快和更灵活的互斥、RwLock、Condvar和Once的实现,以及支持递归锁定的可重入tmutex类型。它还公开了一个低级API,用于创建自己的高效同步原语。
Log4rs 的 pattern 支持以下内容:
- d,data 日期,默认为 ISO 9601 格式,可以通过 {d(%Y-%m-%d %H:%M:%S)} 这种方式改变日期格式
- l,log 级别
- h,高亮显示,debug 灰,info 绿,warn 黄,error 红
- L,line log消息所在行数
- M,Module log 消息所在模块
- m,message log 消息
- n,具体平台的换行符
- X,mdc 映射诊断环境
- P,pid - The current process id.
- t,target - The target of the log message. 可能与 Module 相同
- T,thread - The name of the current thread. 线程名称
- I,thread_id - The ID of the current thread. 线程 ID
vscode 环境搭建
- rust-analyzer: 它会实时编译和分析你的 Rust 代码,提示代码中的错误,并对类型进行标注。
- rust syntax:为代码提供语法高亮。
- crates 帮助你分析当前项目的依赖是否是最新的版本。
- better toml:Rust 使用 toml 做项目的配置管理。
- rust test lens:可以帮你快速运行某个 Rust 测试。
- Tabnine:基于 AI 的自动补全,可以帮助你更快地撰写代码。
- Rust Targets: 快速选择编译目标, 无需在setting.json中进行配置。
- Rust Mod Generator: 快速生成 rust mod。
- Rust Flash Snippets: 一套全面的 Rust 片段
- Rust Doc Viewer: 在 VS Code 中查看本地生成的 rust 文档.
- CodeLLDB: 由 LLDB 提供支持的本机调试器。调试 C++、Rust 和其他编译语言。
bin目录
- 每个文件都有单独的main入口
- 想要引入src资源的包, 需要在lib中进行公开模块
- 指定执行bin包: cargo run --bin log4rs_bin
bin目录参考文档
- https://www.cnblogs.com/s-seven/p/14864269.html
- https://rustcc.cn/article?id=dcc947c4-21a9-4ba0-ba59-43f6b580aae6
rustup 指令
- 本机编译链工具: rustup show
- 编译链列表: rustup target list
- 添加指定编译链: rustup target add x86_64-pc-windows-gnu
- 安装工具链: rustup toolchain install x86_64-pc-windows-gnu