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 audit1 |
Footnotes
-
Requires installing
cargo-auditlocally ↩