For development I mostly use a shell.nix
with the Rust toolchain. I use Mozilla’s Rust overlay because it makes it so easy to get the current stable versions, nightlies, or even specific nightlies (for pyo3
). E.g.
with import <nixpkgs> {};
stdenv.mkDerivation rec {
name = "finalfusion-utils-env";
env = buildEnv { name = name; paths = buildInputs; };
buildInputs = [
latest.rustChannels.stable.rust
}
To make something properly buildable, I add default.nix
using crate2nix
+ buildRustCrate
or buildRustPackage
.