Expand description

Coin CBC Rust bindings

This crate exposes safe and efficient bindings to the Coin CBC C API.

For more information on how to install the Cbc library dependencies, see the respective README section.

This project is distributed under the MIT License by Kardinal.

Solving multiple problems in parallel

By default, this crate enforces a global lock which will force multiple problems to be solved sequentially even if solve is called from multiple threads in parallel. This is because by default, libcbc is not thread safe. If you have compiled your own libcbc with the CBC_THREAD_SAFE option, you can disable this behavior by disabling the singlethread-cbc feature on this crate. Do not disable this feature if you are not certain that you have a thread safe libcbc, or you will be exposed to memory corruption vulnerabilities.

Re-exports

pub use raw::Sense;

Modules

A raw and safe binding to the Coin CBC C API.

Structs

A column identifier.
A MILP model.
A row identifier.
A solution to a MILP problem.

Functions

Panics if the installed version of libcbc is less than a given version
Returns a tuple of (major, minor, patch) version of the libcbc installed on the current system
Returns an error if the installed version of libcbc is less than a given version