// the find
scipopt/scip
SCIP - Solving Constraint Integer Programs
SCIP is a C library and standalone solver for mixed integer (non)linear programming, built around a plugin architecture for branch-cut-and-price. It's aimed at people doing operations research or building custom solvers, not at developers wanting a drop-in LP/MIP library for an app.
The plugin system is the real feature here — you can swap in custom branching rules, cutting planes, heuristics, and presolvers without touching solver internals, which is why it's the base for a lot of academic solver research. It also ships an exact rational arithmetic mode for MIP, something almost no other solver bothers with. The applications/ directory has full working examples (coloring, scheduling, ring packing) that double as a template for writing your own plugins instead of just toy demos.
This GitHub repo is explicitly a read-only mirror of a GitLab instance at ZIB, so issues and PRs here don't go anywhere useful — you have to work upstream. The license is ZIB Academic License: free for research/education, but you need a separate commercial license to ship it in a product, which disqualifies it for a chunk of potential users before they even build it. The build is non-trivial: it depends on other ZIB components (SoPlex as the default LP solver, optionally Ipopt for MINLP) that you fetch and build separately, and the C API is low-level enough that wiring up a custom constraint handler means reading the doc site in a second tab the whole time.