Repository template to get quickly started with writing Rust libraries, ready for distributing.
Open your favorite terminal and clone this locally.
-
With the GitHub CLI (replace
<project>
with what you'd like to call your project):gh repo create <project> --template nlp-rs/rust-template
-
With the Git CLI:
git clone https://github.com/nlp-rs/rust-template.git
- Remote development support with GitHub Codespaces
- Debugging with the LLDB Debugger tool in Visual Studio Code (VSCode Marketplace)
- Fuzz testing with LLVM's libFuzzer tool and
cargo fuzz
(Reference) - Performance benchmarks in Rust with Criterion and Iai (suitable to run in GitHub Actions CI environments)
- CI/CD support with GitHub Actions
- Running tests and benchmarks
- Running Rustfmt and Clippy for detecting formatting and linting errors, respectively
- Weekly, midnight scheduled audits of Rust packages (for outdated dependencies, compatible software licenses, and software vulnerabilities) with
EmbarkStudios/cargo-deny-action
Tool | File path | Reference |
---|---|---|
GitHub Codespaces | devcontainer.json |
Reference |
GitHub Actions | .github/workflows |
Reference |
Cargo package | Cargo.toml |
Reference |
Clippy (Rust linter) | .clippy.toml |
Repository, Reference |
Rustfmt (Rust formatter) | .rustfmt.toml |
Repository, Reference |
Commitlint | .commitlintrc.json |
Repository, Reference |
cargo-deny |
deny.toml |
Repository |
Script | Command |
---|---|
Run unit/integration/doc tests | cargo test |
Run fuzz tests | cargo fuzz <fuzz-target> |
Run Rustfmt | cargo fmt |
Run Clippy | cargo clippy |
Run performance benchmarks | cargo bench |
Generate API docs for crate | cargo doc |
Generate mdBook docs for crate | mdbook build |
Run security audits | cargo audit 1 |
Footnotes
-
Requires installing
cargo-audit
locally ↩