8 releases

0.1.7 May 20, 2024
0.1.6 Apr 11, 2024
0.1.4 Mar 28, 2024

#594 in Rust patterns


Used in good_lp

MIT/Apache

87KB
1.5K SLoC

cplex-rs CI Pipeline

Safe rust bindings for CPLEX, based on the existing rplex project. It adds a few features on top of rplex, such as:

  • parameter namespaces consistent with the native C/C++ CPLEX API
  • more structured error handling
  • possibility to add variables and constraints in batch
  • raw bindings generate at compile time parsing the actual cplex header

It also remove some features which are present rplex, especially the macros to define constraints and variables, since they present some issues.

It depends on the raw cplex bindings, generated through bindgen in the cplex-rs-sys crate.

To build this repo, a valid CPLEX installation must be present on the system. If the CPLEX installation path is not the standard one, you will need to pass the CPLEX_PATH environment variable to cargo with the cplex installation path of choice, e.g.:

CPLEX_PATH=/path/to/cplex/installation cargo build

Testing

Tests in the CI are run using a personal copy of the CPLEX community edition, deployed in a docker image a private docker repository.

If you want to generate an image with your own CPLEX installation to test this repo, you can find instructions in the ./utils folder on how to do so.

Dependencies

~0.3–2.5MB
~53K SLoC