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.