:icons: font = My Rust Project [link=https://ci.patagia.dev/repos/7,window=_blank] image::https://ci.patagia.dev/api/badges/7/status.svg[Build Status] This is an opinionated template for rust projects using Nix. :toc: left == 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 - https://github.com/oxalica/rust-overlay[rust-overlay] to manage rust version. - https://nexte.st[nextest] for running tests. - https://github.com/rui314/mold[mold] for faster linking. - https://github.com/rust-lang/rustfmt[rustfmt] for code formatting. - https://github.com/rust-lang/rust-clippy[clippy] for linting. == Dev tools by default - https://direnv.net[direnv] for automatic dev shell activation. - https://dystroy.org/bacon/[Bacon] - automatic and minimal interaction code checker. - https://github.com/bnjbvr/cargo-machete[cargo-machete] for removing unused dependencies. - https://github.com/sharkdp/hyperfine[hyperfine] for simple benchmarking. - https://just.systems/man/en/[just] for running things and discovery. - https://github.com/watchexec/watchexec[watchexec] (and https://github.com/watchexec/cargo-watch[cargo-watch]) for watching files and running commands. === Nix opinions - https://github.com/ipetkov/crane[Crane] for incremental artifact builds and nice set of checks. - https://github.com/rustsec/advisory-db[Advisory-db] for automatic checking of vulnerabilities of dependencies. - https://github.com/numtide/nix-filter[nix-filter] allows filtering out files from the source input for a project. - https://github.com/numtide/treefmt-nix[treefmt] supports automatic code formatting of all kinds of source code.