JuliaCon 2025

ORTools.jl: access Google's solvers through JuMP
2025-07-24 , Main Room 2

In Julia, JuMP is the go-to modelling package for mathematical optimisation. As of this writing, Google's award-winning solvers have not been accessible through JuMP; which offers Julia's ease of use. ORTools.jl is changing this. Julia users will now have access to Google's Glop, CP-SAT, and PDLP solvers through JuMP as provided by the ORTools.jl package.
This talk offers an introduction to the features of the package and an overview of the difficulties we encountered.


ORTools.jl is a package that exposes Google’s optimisation solvers to the Julia ecosystem. It achieves this goal through MathOptInterface, for JuMP and Optimization.jl compatibility, and doing necessary data structure conversions, currently primarily through Protocol Buffer, to target Google’s MathOpt library.

It will expose Google’s Glop, CP-SAT, and PLDP open-source solvers to the Julia community, giving access, for the very first time, to Google’s solvers through JuMP as they would other solvers. In particular, CP-SAT has won gold medals at the MiniZinc challenge for more than a decade and PDLP has sparked new interest in first-order methods for linear programming at extremely large scale.

Writing this package was a technical challenge, as the Google solvers are only accessible through a C++ interface, a language that is notoriously hard for interop. The first version of ORTools.jl uses a Protocol Buffer interface and a very small C API to call the solvers. It relies on a JLL package to build OR-Tools, ensuring a smooth experience for end users

Just a Kenyan interested in the pursuit of knowledge and it's application towards enriching human experiences.