The R Optimization Infrastructure (ROI) package provides an extensible infrastructure to model linear, quadratic, conic and general nonlinear optimization problems in a consistent way.


Furthermore, the infrastructure administers many different solvers, reformulations, problem collections and functions to read and write optimization problems in various formats.


ROI provides the modeling capabilities and manages the plugins, the plugins add the solvers to ROI.


plugins <- ROI_available_solvers()[,c("Package", "Repository")]
plugins <- aggregate(Repository ~ Package,  data = plugins,
                     FUN = paste, collapse = ", ")
knitr::kable(plugins, row.names = TRUE)
Package Repository
1 ROI.plugin.alabama,
2 ROI.plugin.cbc
3 ROI.plugin.cccp
4 ROI.plugin.clp
5 ROI.plugin.cplex
6 ROI.plugin.deoptim,
7 ROI.plugin.ecos,
8 ROI.plugin.glpk
9 ROI.plugin.highs,
10 ROI.plugin.ipop
11 ROI.plugin.lpsolve,
12 ROI.plugin.mosek
13 ROI.plugin.msbinlp,
14 ROI.plugin.neos,
15 ROI.plugin.nloptr,
16 ROI.plugin.optimx,
17 ROI.plugin.osqp,
18 ROI.plugin.qpoases,
19 ROI.plugin.quadprog,
20 ROI.plugin.scs,
21 ROI.plugin.symphony,


The Installation page contains information to assist with the installation of ROI and its companion packages.

Additional resources

Additional to this web page there exist several resources:


There are several possible ways to contribute to the ROI project.

  • Since ROI was designed to allow decentralized development anyone is free and invited to extend ROI by creating a new plugin or model collection.
  • The source code of this page is stored on Gitlab modifications to this page can be suggested by raising an issue or creating a pull request.
  • If you find ROI useful we would be happy to add your particular use case to the Use Cases page. To do so you can again raise and issue or create a pull request on Gitlab. The use case should be either written in Sweave, knitr or R Markdown and contain an author and a license (e.g. GNU General Public License version 3).


Theußl, S., Schwendinger, F., & Hornik, K. (2020). ROI: An Extensible R Optimization Infrastructure. Journal of Statistical Software, 94(15), 1–64.

  title   = {ROI: An Extensible R Optimization Infrastructure},
  volume  = {94},
  url     = {},
  doi     = {10.18637/jss.v094.i15},
  number  = {15},
  journal = {Journal of Statistical Software},
  author  = {Theußl, Stefan and Schwendinger, Florian and Hornik, Kurt},
  year    = {2020},
  pages   = {1–64}