/ rust-toolchain / flake.nix
flake.nix
1 { 2 description = "A Nix-flake-based Rust development environment"; 3 4 inputs = { 5 nixpkgs.url = "github:NixOS/nixpkgs/release-22.11"; 6 flake-utils.url = "github:numtide/flake-utils"; 7 rust-overlay.url = "github:oxalica/rust-overlay"; 8 }; 9 10 outputs = 11 { self 12 , nixpkgs 13 , flake-utils 14 , rust-overlay 15 }: 16 17 flake-utils.lib.eachDefaultSystem (system: 18 let 19 overlays = [ 20 (import rust-overlay) 21 (self: super: { 22 rustToolchain = super.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; 23 }) 24 ]; 25 26 pkgs = import nixpkgs { inherit system overlays; }; 27 in 28 { 29 devShells.default = pkgs.mkShell { 30 packages = with pkgs; [ 31 rustToolchain 32 openssl 33 pkg-config 34 cargo-deny 35 cargo-edit 36 cargo-watch 37 rust-analyzer 38 ]; 39 40 shellHook = '' 41 ${pkgs.rustToolchain}/bin/cargo --version 42 ''; 43 }; 44 }); 45 }