- likr/clp-rs Here I borrowed the approach to building and binding of C++ code into a Rust package
- KardinalAI/coin_cbc Here I borrowed the actual library that turns bindings into normal Rust functions and tests (only the raw version of CbcModel is used, it's the one that allows to
Cbc_LoadProblem()
all at once) - COIN-OR Cbc/Clp/Cgl/Osi/CoinUtils Versions of the COIN-OR libs are hardcoded to be the latest releases as of November 2021 (with a patch that revives
Cbc_getRowPrice()
method in the Cbc C API)
cargo buld --release -j4
takes about 2 minutes on a modern Intel CPU, outputs about 10 Mb of a Rust library
cargo test --release
tested on Ubuntu 20.04 (requires clang) and MacOS 11.6 (requires Xcode)
- No worry installing CBC in the system
- The version of CBC can't be easily changed