前言
- 最近写Rust项目多起来了,每次配置Rust项目都要在之前的Rust写的https://github.com/0x727/ObserverWard/中拷贝部分配置,所以想着把侦查守卫的配置提取出来作为一个Rust项目的模板,以后直接使用这个模板创建项目就好了。
创建模板
- cargo创建一个lib库项目,然后基于这个来改一下
➜ IdeaProjects cargo new emo_template --lib Created library `emo_template` package
Cargo.toml
文件,主要是添加了如何将rust编译发行的体积变得更小。
[package]
name = "emo_template" #改这个
version = "0.1.0"
edition = "2021"
authors = ["Kali-Team <root@kali-team.cn>"]
include = ["LICENSE", "Cargo.toml", "src/**/*.rs"]
# See more keys and their definitions at <https://doc.rust-lang.org/cargo/reference/manifest.html>
[workspace]
members = ["."]
#<https://github.com/johnthagen/min-sized-rust>
[profile.release]
opt-level = "z" # Optimize for size.
lto = true # Enable Link Time Optimization
codegen-units = 1 # Reduce number of codegen units to increase optimizations.
panic = "abort" # Abort on panic
strip = true # Automatically strip symbols from the binary.
[profile.dev.package."*"]
opt-level = 3
[profile.test]
opt-level = 3
lto = "thin"
[profile.bench]
lto = true
codegen-units = 1
opt-level = 3
[dependencies]
.gitignore
文件也忽略了.idea/
,平时只使用IDEA开发,所以就只写这一个了。
# Generated by Cargo
# will have compiled files and executables
/target/
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here <https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html>
Cargo.lock
# These are backup files generated by rustfmt
**/*.rs.bk
.idea/
- 剩下的都是github的一些workflow文件,主要检查代码格式和测试流程是否跑通,定时检查一下依赖库是否有漏洞
- 在commit前格式化代码,和调用
clippy
检查代码是否通过。
#!/bin/sh
# 执行 fmt 脚本,如果不正确需要将退出码设为非零
cargo clippy --workspace --all-features --all-targets -- -D warnings --allow deprecated
cargo fmt --all
# 获取上面脚本的退出码
exitCode="$?"
exit $exitCode
启用该项目作为模板
- 推到Github后点击
Settings
把Template repository
勾上就可以作为模板使用了。