{ description = "evidence"; inputs = { nixpkgs.url = "nixpkgs/nixos-25.11"; nixos-unstable.url = "nixpkgs/nixos-unstable-small"; command-utils.url = "git+https://codeberg.org/expede/nix-command-utils"; flake-utils.url = "github:numtide/flake-utils"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, flake-utils, nixos-unstable, nixpkgs, rust-overlay, command-utils } @ inputs: flake-utils.lib.eachDefaultSystem ( system: let overlays = [ (import rust-overlay) ]; pkgs = import nixpkgs { inherit system overlays; config.allowUnfree = true; }; unstable = import nixos-unstable { inherit system overlays; config.allowUnfree = true; }; rustVersion = "1.90.0"; rust-toolchain = pkgs.rust-bin.stable.${rustVersion}.default.override { extensions = [ "cargo" "clippy" "llvm-tools-preview" "rust-src" "rust-std" "rustfmt" ]; targets = [ "aarch64-apple-darwin" "x86_64-apple-darwin" "x86_64-unknown-linux-musl" "aarch64-unknown-linux-musl" "wasm32-unknown-unknown" "thumbv6m-none-eabi" ]; }; format-pkgs = with pkgs; [ nixpkgs-fmt alejandra taplo ]; cargo-installs = with pkgs; [ cargo-component cargo-criterion cargo-deny cargo-expand cargo-hack cargo-nextest cargo-outdated cargo-semver-checks cargo-sort cargo-udeps cargo-watch ]; rust = command-utils.rust.${system}; command_menu = command-utils.commands.${system} [ (rust.build { cargo = pkgs.cargo; }) (rust.test { cargo = pkgs.cargo; cargo-watch = pkgs.cargo-watch; }) (rust.lint { cargo = pkgs.cargo; }) (rust.fmt { cargo = pkgs.cargo; }) (rust.doc { cargo = pkgs.cargo; }) (rust.bench { cargo = pkgs.cargo; cargo-criterion = pkgs.cargo-criterion; xdg-open = pkgs.xdg-utils; }) (rust.watch { cargo-watch = pkgs.cargo-watch; }) ]; in rec { devShells.default = pkgs.mkShell { name = "evidence_shell"; nativeBuildInputs = [ command_menu rust-toolchain pkgs.rust-analyzer ] ++ format-pkgs ++ cargo-installs ++ pkgs.lib.optionals pkgs.stdenv.isLinux [ pkgs.clang pkgs.llvmPackages.libclang pkgs.openssl.dev pkgs.pkg-config ]; shellHook = '' unset SOURCE_DATE_EPOCH export WORKSPACE_ROOT="$(pwd)" menu '' + pkgs.lib.optionalString pkgs.stdenv.isLinux '' unset PKG_CONFIG_PATH export PKG_CONFIG_PATH=${pkgs.openssl.dev}/lib/pkgconfig export OPENSSL_NO_VENDOR=1 export OPENSSL_LIB_DIR=${pkgs.openssl.out}/lib export OPENSSL_INCLUDE_DIR=${pkgs.openssl.dev}/include ''; }; formatter = pkgs.alejandra; } ); }