cbcbox
Binary distribution of the CBC MILP solver (COIN-OR Branch and Cut)
What it is and what it does
cbcbox packages the COIN-OR CBC branch-and-cut solver as a ready-to-use Python wheel, eliminating the need to compile or install system libraries. It solves mixed-integer linear programs (MILPs) and linear programs (LPs) via command-line or programmatic Python interface, with support for LP, MPS, and compressed MPS file formats.
The package ships with two complete solver stacks on x86_64 platforms: a Haswell-optimized build using AVX2 instructions for maximum speed (approximately 2.8× faster on average) and a generic build with runtime CPU dispatch for compatibility with any x86_64 machine. All dependencies—OpenBLAS, libgfortran, SuiteSparse AMD—are bundled. Parallel branch-and-cut is enabled, allowing multi-threaded search tree exploration. The barrier solver includes AMD fill-reducing ordering for improved performance on large sparse problems.
Use it for:
- Solve production MILP instances without managing a separate CBC installation or system dependencies.
- Benchmark or prototype optimization algorithms using CBC as the underlying solver engine.
- Distribute optimization-based applications to end users without requiring them to compile or configure solvers.
- Use parallel branch-and-cut to accelerate hard MIP instances on multi-core machines.
- Leverage barrier + AMD Cholesky for faster LP relaxation solving on large sparse problems.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
cbcbox is a self-contained Python distribution of the CBC MILP solver, providing optimized branch-and-cut solving for mixed-integer linear programs via command-line or Python API.
Yes. cbcbox is actively maintained (last release 1 day old), has no known vulnerabilities, and solves a real problem—providing a production-ready MILP solver without compilation or system library friction. The EPL-2.0 copyleft license is standard for COIN-OR and poses no barrier for non-commercial or proprietary use of the package as-is. Install it if you need to solve integer or linear programs and want a self-contained, cross-platform distribution.
Install
cbcbox on PyPI
pip
pip install cbcboxuv
uv add cbcboxpoetry
poetry add cbcboxInstalling cbcbox
Before you install
Installation is straightforward via pip with no runtime dependencies to manage. The package ships pre-built wheels for x86_64 and ARM platforms with all dynamic dependencies (OpenBLAS, libgfortran) bundled. Medium install friction reflects the wheel size and platform-specific binary selection, but no compilation or system library setup is required.
License in practice
Licensed under EPL-2.0 (copyleft). Users must comply with copyleft obligations if they modify or redistribute the package; proprietary applications using cbcbox as-is without modification face no additional licensing burden, but derivative works must remain open-source under compatible terms.
Quickstart
pip install cbcbox
import cbcbox
import subprocess
result = subprocess.run(
[cbcbox.cbc_bin_path(), "model.mps", "-solve", "-quit"],
capture_output=True, text=True
)
print(result.stdout)
Requires Python 3.8 or later. On x86_64 systems, the package automatically selects an AVX2-optimized binary if the CPU supports it; otherwise falls back to a generic build. Can be overridden via CBCBOX_BUILD environment variable.
Verify before relying
- Whether the automatic CPU dispatch at import time has measurable overhead or latency impact in practice.
- Performance characteristics of parallel branch-and-cut on specific problem classes or hardware configurations.
- Stability and maturity of the barrier (interior-point) solver with AMD Cholesky on large sparse problems.
Package facts
| License | EPL-2.0 (copyleft) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 150,602/month — #10,960 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cbcbox-2.931-py3-none-macosx_15_0_arm64.whl; cbcbox-2.931-py3-none-macosx_15_0_x86_64.whl; cbcbox-2.931-py3-none-manylinux2014_aarch64.whl; cbcbox-2.931-py3-none-manylinux2014_x86_64.whl; cbcbox-2.931-py3-none-win_amd64.whl
Keywords: cbc, milp, optimization, coin-or, solver, mixed-integer
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
cylpCyLP provides a Python interface to COIN-OR's…
copyleft · top 15,000 on PyPI
mipPython MIP models and solves mixed-integer…
copyleft · top 15,000 on PyPI
PuLPPuLP is a linear and mixed-integer programming…
permissive · top 5,000 on PyPI
optlangOptlang formulates and solves linear,…
permissive · top 15,000 on PyPI
xpressPython interface to the FICO Xpress Optimizer…
unclear · top 15,000 on PyPI
magiccubeMagicCube implements NxNxN Rubik cubes with…
permissive · top 15,000 on PyPI
highspyHighspy is a Python wrapper around HiGHS, a…
permissive · top 5,000 on PyPI
MosekMOSEK solves large-scale convex and…
unclear · top 15,000 on PyPI
qpsolversProvides a unified Python interface to solve…
copyleft · top 5,000 on PyPI
ortoolsOR-Tools provides constraint programming,…
permissive · top 5,000 on PyPI