https://github.com/gibbz00/basic-things
Github project template for Rust-based projects.
https://github.com/gibbz00/basic-things
cargo-generate
Last synced: 5 months ago
JSON representation
Github project template for Rust-based projects.
- Host: GitHub
- URL: https://github.com/gibbz00/basic-things
- Owner: gibbz00
- License: mit
- Created: 2024-05-01T06:14:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-30T18:02:17.000Z (6 months ago)
- Last Synced: 2025-12-03T01:51:25.940Z (6 months ago)
- Topics: cargo-generate
- Language: Liquid
- Homepage:
- Size: 127 KB
- Stars: 6
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md.liquid
Awesome Lists containing this project
README
# Basic Things
Project template for Rust based projects hosted on Github.
Essentially matklad's [Basic Things](https://matklad.github.io/2024/03/22/basic-things.html) in action.
A generated example with the majority of the features enabled can be found over at [basic-things-demo](https://github.com/gibbz00/basic-things-demo).
### Getting started
Create an empty GitHub repository and install [`cargo-generate`](https://github.com/cargo-generate/cargo-generate) before running:
```sh
cargo generate gibbz00/basic-things
```
CI may expect the presence of both [`CODECOV_TOKEN`](https://docs.codecov.com/docs/adding-the-codecov-token) and [`CARGO_REGISTRY_TOKEN`](https://crates.io/settings/tokens).
(Reference for template values may be found in `./cargo_generate/values.toml`.)
### Integrated tools
* [git-cliff](https://git-cliff.org) - Automated changelog generation by the usage of conventional commits.
* [mdbook](https://github.com/rust-lang/mdBook) - Optionally enabled to create user focused documentation.
* [codecov](https://about.codecov.io/) - Optionally enabled for code coverage uploads and analysis.
* [pre-commit](https://github.com/pre-commit/pre-commit) - Optionally enabled for quicker validations before committing.
Project aims to provide a comprehensive continuous integration and delivery pipeline. This includes running CI jobs using:
* [`cargo fmt/clippy`](https://github.com/rust-lang/cargo) - Format and lint check Rust source code and doc comments
* [`taplo fmt/lint`](https://github.com/tamasfe/taplo) - Format and lint check for TOML files
* [`lychee`](https://github.com/lycheeverse/lychee) - Scan for broken URLs
* [`cargo-udeps`](https://github.com/est31/cargo-udeps) - Find unused dependencies
* [`typos`](https://github.com/crate-ci/typos) - Spell checking source code
* [`cargo-deny`](https://github.com/EmbarkStudios/cargo-deny) - Dependency license and vulnerability scanning
* [`dependabot`](https://github.com/dependabot/dependabot-core) - Dependency update scanning
* [`cocogitto`](https://github.com/cocogitto/cocogitto) - Assert usage of convetional commits.
Pipeline will also executes tests with `cargo`, `mdbook` (if enabled), and `cargo llvm-cod` for code coverage reporting.
Release pipeline publishes the crates to [crates.io](https://crates.io/) and the book to [GitHub Pages](https://pages.github.com/).
### Proposed improvements
- [ ] Add support for other Git hosts other than GitHub, e.g Gitea and GitLab.
- [ ] Make most features opt-in.
- [ ] Cocogitto conventional commit checking in `pre-commit` commit-msg hook.
- [ ] Automated releases with [`release-plz`](https://release-plz.ieni.dev)?