One way to use a custom rust toolchain with crate2nix is to import nixpkgs with an overlay for rustc.
crate2nix
rustc
Here is an example flake using fenix:
{ description = "containix"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/24.05"; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-utils.url = "github:numtide/flake-utils"; crate2nix.url = "github:nix-community/crate2nix"; }; outputs = { self, nixpkgs, flake-utils, fenix, crate2nix, }: flake-utils.lib.eachDefaultSystem ( system: let toolchain = fenix.packages.${system}.stable.defaultToolchain; pkgs = import nixpkgs { inherit system; overlays = [ (final: prev: { rustc = toolchain; cargo = toolchain; }) ]; }; crate2nix' = pkgs.callPackage (import "${crate2nix}/tools.nix") {}; cargoNix = crate2nix.appliedCargoNix { name = "my-crate"; src = ./.; }; in { packages = { default = cargoNix.rootCrate.build; }; } );}