No description
Find a file
2024-12-01 15:20:16 +01:00
src Day 01 2024-12-01 15:20:16 +01:00
.envrc Initial commit 2024-12-01 14:51:46 +01:00
.gitignore Initial commit 2024-12-01 14:51:46 +01:00
Cargo.lock Initial commit 2024-12-01 14:51:46 +01:00
Cargo.toml Day 01 2024-12-01 15:20:16 +01:00
flake.lock Initial commit 2024-12-01 14:51:46 +01:00
flake.nix Initial commit 2024-12-01 14:51:46 +01:00
LICENSE Initial commit 2024-12-01 14:51:46 +01:00
README.md Initial commit 2024-12-01 14:51:46 +01:00
rust-toolchain.toml Initial commit 2024-12-01 14:51:46 +01:00
treefmt.nix Initial commit 2024-12-01 14:51:46 +01:00

A template Rust project with fully functional and no-frills Nix support, as well as builtin VSCode configuration to get IDE experience without any manual setup (just install direnv, open in VSCode and accept the suggestions).

Note

If you are looking for the original template based on this blog post's use of crate2nix, browse from this tag. The evolution of this template can be gleaned from releases.

Adapting this template

  • Run nix develop to have a working shell ready before name change.
  • Change name in Cargo.toml.
  • Run cargo generate-lockfile in the nix shell
  • There are two CI workflows, and one of them uses Nix which is slower (unless you configure a cache) than the other that is based on rustup. Pick one or the other depending on your trade-offs.

Development (Flakes)

This repo uses Flakes from the get-go.

# Dev shell
nix develop

# or run via cargo
nix develop -c cargo run

# build
nix build

We also provide a justfile for Makefile'esque commands.

Discussion

See Also