# My Rust Project This is an opinionated template for rust projects using Nix. ## Template features - CI template for Woodpecker. - Forgejo commit message templates. - Linting and formatting. - Nix-centered development environment. - Include language servers and all tooling in Nix dev shell. ### Rust Opinions - [rust-overlay](https://github.com/oxalica/rust-overlay) to manage rust version. - [nextest](https://nexte.st) for running tests. - [mold](https://github.com/rui314/mold) for faster linking. - [rustfmt](https://github.com/rust-lang/rustfmt) for code formatting. - [clippy](https://github.com/rust-lang/rust-clippy) for linting. ## Dev tools by default - [direnv](https://direnv.net) for automatic dev shell activation. - [Bacon](https://dystroy.org/bacon/) - automatic and minimal interaction code checker. - [cargo-machete](https://github.com/bnjbvr/cargo-machete) for removing unused dependencies. - [hyperfine](https://github.com/sharkdp/hyperfine) for simple benchmarking. - [just](https://just.systems/man/en/) for running things and discovery. - [watchexec](https://github.com/watchexec/watchexec) (and [cargo-watch](https://github.com/watchexec/cargo-watch)) for watching files and running commands. ### Nix opinions - [Crane](https://github.com/ipetkov/crane) for incremental artifact builds and nice set of checks. - [Advisory-db](https://github.com/rustsec/advisory-db) for automatic checking of vulnerabilities of dependencies. - [nix-filter](https://github.com/numtide/nix-filter) allows filtering out files from the source input for a project. - [treefmt](https://github.com/numtide/treefmt-nix) supports automatic code formatting of all kinds of source code.