Rust bindings to the CoinOR CBC MILP Solver using the C API.
Tested on Debian 10, AMD64, coinor-libcbc3 2.9.9+repack1-1.
For more details on installing the libCbc
dependencies, see below.
coin_cbc_sys
This crate exposes raw bindings to the C functions.
coin_cbc
This crate exposes safe rust bindings using coin_cbc_sys
.
coin_cbc::raw::Model
exposes direct translation of the C function with assert to guaranty safe use.
coin_cbc::Model
exposes a more user friendly, rustic and efficient API: it was used successfully to solve MILP with 250,000 binary variables with unnoticeable overhead.
See the examples directory.
Cbc
library filesThe library files of the COIN-OR
Solver Cbc
need to present on your system when compiling a project that depends on coin_cbc
.
On a Debian system with a user with admin rights, this is easily achieved with:
sudo apt install coinor-libcbc-dev
For other systems, without admin rights or if you need a newer version of Cbc
(e.g. with bug fixes), you can install Cbc
through coinbrew
:
https://coin-or.github.io/user_introduction#building-from-source
You will then have to either:
1. register the resulting library files with your system, or
2. provide cargo
with the location of that library.
For the first option, coinbrew
provides a command suggestion after successful compilation.
The second option can e.g. be done via:
RUSTFLAGS='-L /path/to/your/cbc/install/lib' cargo test
This project is distributed under the MIT License by Kardinal.