template-nix-rust/README.adoc

44 lines
1.8 KiB
Text
Raw Normal View History

2024-11-23 20:56:34 +01:00
: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.