splr 0.19.0

A modern CDCL SAT solver in Rust
Documentation
{
  description = "A modern SAT solver in Rust";
  inputs.nixpkgs.url = "github:NixOS/nixpkgs";
  inputs.sat-bench.url = "github:shnarazk/SAT-bench";
  inputs.home.url = "github:shnarazk/flakes";

  outputs = { self, nixpkgs, sat-bench, home }:
  {
    packages = builtins.listToAttrs
      (map
        (system:
          with import nixpkgs { system = "${system}"; };
          {
            name = system;
            value = {
               default =
                 rustPlatform.buildRustPackage rec {
                   version = "0.19.0-20260822";
                   name = "splr-${version}";
                   pname = "splr";
                   src = self;
                   cargoHash = "sha256-b2c6cKB8kXEeSmuLaL1MvcMYzPnTykaPm95LmgxdqX8=";
                   buildInputs = rustc.buildInputs ++ lib.optional stdenv.hostPlatform.isDarwin [ libiconv ];
                   buildPhase = "cargo build --release";
                   installPhase = ''
                     mkdir -p $out/bin;
                     install -t $out/bin target/release/splr target/release/dmcr
                   '';
                 };
            };
          }
        )
      [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]
    );
    devShell = builtins.listToAttrs
      (map
        (system:
          with import nixpkgs { system = "${system}"; };
          {
            name = system;
            value = mkShell {
                packages = [
                  cargo-watch
                  drat-trim
                  home.packages.${system}.kissat
                  # nixpkgs.lldb_19
                  samply
                  tokei
                  sat-bench.packages.${system}.default
                  tinymist
                  typst
                ];
            };
          }
        )
      [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]
    );
  };
}