{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, utils }: utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; cargoToml = with builtins; (fromTOML (readFile ./Cargo.toml)); in rec { packages.default = pkgs.rustPlatform.buildRustPackage { inherit (cargoToml.package) name version; src = nixpkgs.lib.cleanSource ./.; doCheck = true; cargoLock.lockFile = ./Cargo.lock; }; apps.default = utils.lib.mkApp { inherit (cargoToml.package) name; drv = packages.default; }; devShell = with pkgs; mkShell { packages = [ cargo rustc rustfmt clippy rust-analyzer ]; RUST_SRC_PATH = rustPlatform.rustLibSrc; }; }); }