← Back to all sparks
O

OR-Tools

ANALYTICS
Velocity0.0

Optimization suite for constraint programming, routing, scheduling and linear solvers

Google's solver suite where nearly every release note is really about CP-SAT.

constraint-programmingoptimizationcp-satroutingsolver-suite
Current state
OR-Tools bundles constraint programming, linear solvers, routing, and graph algorithms, but the release notes make the priority obvious: CP-SAT gets the most substantive changes in every version, particularly its no_overlap_2d propagation, presolve, and cut management. Around that core, the work is platform and dependency maintenance — new Linux distro support, Python and Java version cycling, and bumping the bundled Coin-OR, HiGHS, SCIP, and abseil versions. Note that these entries carry batch-stamped crawl dates; the newest actual release here is v9.12 from early 2025.
Where it's heading
The suite is consolidating on fewer, better-maintained components: old graph classes were removed outright, MathOpt got a deep rework and shipped in the Python wheel, and the Python API was rewritten to PEP 8 naming. Build-level changes point the same direction — dependencies split into separate shared libraries, Windows output moved to DLLs.
Prediction
CP-SAT scheduling and 2D packing propagation should keep absorbing the bulk of the effort; the entries show no other component receiving comparable sustained investment.

Recent moves

  1. 1y ago

    Dependencies split into shared libraries, Python 3.13 support, CP-SAT hint preservation

    The build change is the notable part: protobuf, abseil, re2 and HiGHS become separate shared libraries and Windows ships DLLs, which matters to anyone packaging OR-Tools downstream. CP-SAT gets rewritten hint transformation during presolve so complete hints survive it, plus more no_overlap_2d work.

    View source ↗
  2. 1y ago

    AlmaLinux and Rocky Linux 9 support, experimental set_cover Python binding

    Mostly platform coverage — AlmaLinux 9, Rocky Linux 9, Ubuntu 24.04 — with an experimental set_cover Python binding as the one new capability. The release also documents a known CP-SAT callback performance problem across Python, Java and .NET rather than fixing it.

    View source ↗
  3. 1y ago

    CP-SAT core search and presolve improvements, absl::Span migration

    A CP-SAT-heavy release: improved core-based search, better lb_tree_search, a best-bound callback, and merged linear and difference propagators. The C++ surface continues migrating to absl::Span and absl::string_view, which is a signature-level change for embedders.

    View source ↗
  4. 1y ago

    Python API rewritten to PEP 8 naming; MathOpt ships in the Python wheel

    Renaming model.AddBoolOr to model.add_bool_or across the CP-SAT Python API is a break every existing script eventually has to absorb. MathOpt entering the Python wheel signals it is meant to be used, not just built.

    View source ↗
  5. 1y ago

    ModelBuilder gains indicator constraints and hinting; MathOpt deep rework

    Extends the ModelBuilder API with indicator constraints, hinting support and model cloning, and ports it to .NET. The MathOpt rework and routing fixes round it out — this is the release where the newer modeling layers start looking serious.

    View source ↗
  6. 3y ago

    Graph library reworked, pandas support in the Python model builder

    A deep graph rework plus a new objective_shaving_search CP-SAT worker aimed at lower bounds. Allowing pandas DataFrames and Series to create variables is the first sign of OR-Tools meeting data-science workflows where they are rather than requiring solver-shaped input.

    View source ↗