skillfed

cbcbox

Binary distribution of the CBC MILP solver (COIN-OR Branch and Cut)

cbcbox v2.931 150.6K downloads/30d#10,960 on PyPI14
Copyleft license EPL-2.0 Active released

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 cbcbox

uv

uv add cbcbox

poetry

poetry add cbcbox

Installing 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

Intended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: Eclipse Public License 2.0 (EPL-2.0)Operating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Scientific/Engineering :: Mathematics

Tags

MILP solver Pythonbranch and cut optimizationmixed-integer linear programmingCBC solver distributionCOIN-OR solverinteger programming solveroptimization solver wheel
optimizationsolvermilp

More Mathematics packages