or-tools
is a Rust library that binds to certain specific features of the Google Or-Tools C++ library.
This repository will dedicate itself to improve the library's content.
These include:
- TBD # TODO: to be implemented!
Please udjust your Rust compiler to version 1.73
or higher.
- Linux { aarch64, x86_64 }
- Alpine Edge
- Arch Linux (AUR)
- CentOS 7 LTS
- Debian 11
- Fedora 37, 38
- OpenSuse Leap
- Ubuntu 20.04, 22.04, 23.04
- MacOS { aarch64, x86_64 }
- macOS Intel
- macOS M1
- Windows { x86_64 }
- Visual Studio 2022
Your package manager may not support deployment on platforms marked as Supported
above.
For better maintenance, please let us know whether the other platforms support it.
Besides, you may claim us whether the specific platform should support it through Issues
.
- C++20 Compiler (GCC 10 or above)
cmake >= 3.18
- [optional]
Or-Tools C++
- git
or-tools
requires Or-Tools
to be installed. You can either provide a existing system-wide installation, or build it with this library.
- To build it in compile-time if there is no system library:
-
cargo build
-
- To forcely use a system-wide dependency:
-
cargo build --no-default-features
-
- To forcely build it in compile-time:
-
cargo build --features build-native-force
-
The C++ library Or-Tools
will be installed via or-tools-sys
when the build-native
feature flag is enabled.
For the build, this library uses cmake
, so please make sure to have cmake
.
The build-native
flag is enabled by default, supporting build speed and convenience at the same time.
The build-native-force
flag overrides native libraries installed on the system. It is disabled by default, offering increased build times.
or-tools
includes a solver-all
feature flag enabled by default.
solver-all
will enable all kinds of supported open-source solvers.
The latest information about the solvers can be found here: https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported
The solver-all
flag can be disabled with cargo build --no-default-features
.
or-tools
includes a solver-all-nonfree
feature flag that can be used with cargo build --features solver-all-nonfree
.
solver-all
will enable all kinds of supported solvers including GPL and/or proprietary ones.
The latest information about the solvers can be found here: https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported
For detailed instructions on embedding proprietary solvers, please follow to the link below:
- CPLEX: https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-cplex-support
- XPRESS: https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-xpress-support
The solver-all-nonfree
flag is disabled by default, offering increased build times.