/rust

repository template for Rust

Primary LanguageRustApache License 2.0Apache-2.0

Rust Repository Template 🦀

Repository template to get quickly started with writing Rust libraries, ready for distributing.

Getting started

Open your favorite terminal and clone this locally.

  • With the GitHub CLI: Use the command below. Replace <project> with what you'd like to call your project.
    gh repo create <project> --template neoncitylights/rust
  • With the GitHub UI: You can create a new repository based on this template by clicking the "Use this template" button in the top-right corner of this page.

Replace placeholders

Replace the following placeholders with your editor's find-and-replace:

  • {{library}} - The name of the library.
  • {{desc}} - The description of the library.
  • {{author}} - The author's name of the library. For example, this could be a username, nickname, or real name.
  • {{email}} - The author's email address. This is optional and can be deleted.

Features

  • Remote development support with GitHub Codespaces
  • CI/CD support with GitHub Actions
  • Running unit/integration/doc tests
  • 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
  • Includes dual licenses under MIT/Apache-2.0 by default to ensure compatibility with the Rust ecosystem (see C-PERMISSIVE section from Rust API Guidelines book)

Configure

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
cargo-deny deny.toml Repository

Run scripts locally

Script Command
Run unit/integration/doc tests cargo test
Run Rustfmt cargo fmt
Run Clippy cargo clippy
Generate API docs for crate cargo doc
Generate mdBook docs for crate mdbook build (in crates/**/book)
Run security audits cargo audit1

Footnotes

  1. Requires installing cargo-audit locally