JuliaCon Local Paris 2025

ORTools.jl: access Google's solvers through JuMP
2025-10-03 , Robert Faure Amphitheater
Language: English

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

Thibaut Cuvelier is currently a software engineer at Google Research, in the Operations Research team. He received a PhD in telecommunications from CentraleSupélec (université Paris-Saclay, France). He is currently working on applications of operations research and reinforcement learning in logistics.