创建Github项目Rust模板

发布时间: 2023-03-27

前言

  • 最近写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后点击SettingsTemplate repository勾上就可以作为模板使用了。

请在下方留下您的评论.加入TG吹水群