{ inputs = { naersk.url = "github:nix-community/naersk/master"; nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; utils.url = "github:numtide/flake-utils"; rust-overlay = "github:oxalica/rust-overlay"; }; outputs = { self, nixpkgs, utils, naersk, rust-overlay }: utils.lib.eachDefaultSystem (system: let overlays = [ rust-overlay.overlays.default ]; pkgs = import nixpkgs { inherit system overlays; }; naersk-lib = pkgs.callPackage naersk { }; in { defaultPackage = naersk-lib.buildPackage ./.; devShell = with pkgs; mkShell { buildInputs = [ (pkgs.rust-bin.selectLatestNightlyWith ( toolchain: toolchain.default.override { extensions = [ "rust-src" ]; } )) pkgs.rust-analyzer ]; RUST_SRC_PATH = rustPlatform.rustLibSrc; shellHook = '' # nix flake update # is this even needed? ''; }; }); }