43 lines
1.8 KiB
Text
43 lines
1.8 KiB
Text
: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.
|