Using Rust with Nix Flakes
When starting a new Rust project, there are a few simple ways to get off the ground with Nix Flakes.
Option 1: Crane
Start by initializing the Flake template, replacing any occurrences of my-crate in the Flake with the actual name of your crate.
nix flake init -t github:ipetkov/crane#quick-startnix flake init -t github:ipetkov/crane#quick-startFinally, run either nix develop or direnv allow and you should be ready to start coding in Rust! Note, there are additional templates for other build types as well.
Option 2: cargo2nix
Allows you to use Cargo.toml to manage Nix dependencies via a Cargo.nix file.
# Use nix to get cargo2nix & rust toolchain on your path
nix develop github:cargo2nix/cargo2nix#bootstrap
# In directory with Cargo.toml & Cargo.lock files (cargo generate-lockfile)
cargo2nix
# Or skip the shell and run it directly
nix run github:cargo2nix/cargo2nix
# You'll need this in version control
git add Cargo.nix# Use nix to get cargo2nix & rust toolchain on your path
nix develop github:cargo2nix/cargo2nix#bootstrap
# In directory with Cargo.toml & Cargo.lock files (cargo generate-lockfile)
cargo2nix
# Or skip the shell and run it directly
nix run github:cargo2nix/cargo2nix
# You'll need this in version control
git add Cargo.nixWe recommend using the Crane option since as of writing cargo2Nix doesn't appear to be fully up-to-date