highspy
A thin set of pybind11 wrappers to HiGHS
What it is and what it does
Highspy provides a thin Python interface to HiGHS, a C++ optimization solver that handles linear, quadratic, and mixed-integer programming problems. It wraps the core solver functionality via pybind11, allowing Python developers to formulate and solve optimization models without writing C++ code. The package depends on numpy for numerical operations and typing_extensions for type hints.
The solver implements primal and dual revised simplex algorithms for LP, an interior-point method for LP, an active-set method for QP, and a branch-and-bound approach for MIP. It is designed for large-scale sparse problems and supports both serial and parallel execution. No third-party solver dependencies are required—HiGHS is self-contained.
Use it for:
- Solve linear programming problems such as resource allocation, production planning, or network flow optimization
- Handle mixed-integer programming for discrete optimization tasks like scheduling or facility location
- Solve convex quadratic programming problems in portfolio optimization or machine learning applications
- Integrate optimization into Python data science workflows alongside numpy and pandas
- Prototype optimization models quickly without switching to specialized modeling languages
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Highspy is a Python wrapper around HiGHS, a high-performance solver for linear programming (LP), convex quadratic programming (QP), and mixed-integer programming (MIP) problems.
Yes. Highspy is actively maintained, widely used (top 5000 PyPI packages), has no known vulnerabilities, and offers a permissive MIT license. Medium install friction is typical for compiled solvers. Install it if you need to solve LP, QP, or MIP problems in Python and want a self-contained, dependency-light solver.
Install
highspy on PyPI
pip
pip install highspyuv
uv add highspypoetry
poetry add highspyInstalling highspy
Before you install
Medium install friction due to compiled wheels for multiple platforms and Python versions (3.9–3.14). Active maintenance with recent releases; last commit 2026-08-14. Depends on numpy and typing_extensions, both widely available.
License in practice
MIT license is permissive; you may use, modify, and distribute highspy and derivative works freely with minimal restrictions.
Quickstart
pip install highspy
import highspy
h = highspy.Highs()
# Define and solve an optimization model
Verify before relying
- Whether the solver supports warm-starting from previous solutions or basis information
- Performance characteristics and scalability limits for large-scale problems
- Availability of detailed API documentation beyond the GitHub repository
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — numpy, typing_extensions |
| Maintenance | actively maintained — 43 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,622,175/month — #2,554 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: highspy-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl; highspy-1.15.1-cp310-cp310-macosx_11_0_arm64.whl; highspy-1.15.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; highspy-1.15.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; highspy-1.15.1-cp310-cp310-manylinux_2_26_i686.manylinux_2_28_i686.whl; highspy-1.15.1-cp310-cp310-musllinux_1_2_aarch64.whl; highspy-1.15.1-cp310-cp310-musllinux_1_2_i686.whl; highspy-1.15.1-cp310-cp310-musllinux_1_2_x86_64.whl; highspy-1.15.1-cp310-cp310-win32.whl; highspy-1.15.1-cp310-cp310-win_amd64.whl; highspy-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl; highspy-1.15.1-cp311-cp311-macosx_11_0_arm64.whl; highspy-1.15.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; highspy-1.15.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; highspy-1.15.1-cp311-cp311-manylinux_2_26_i686.manylinux_2_28_i686.whl; highspy-1.15.1-cp311-cp311-musllinux_1_2_aarch64.whl; highspy-1.15.1-cp311-cp311-musllinux_1_2_i686.whl; highspy-1.15.1-cp311-cp311-musllinux_1_2_x86_64.whl; highspy-1.15.1-cp311-cp311-win32.whl; highspy-1.15.1-cp311-cp311-win_amd64.whl
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
qpsolversProvides a unified Python interface to solve…
copyleft · top 5,000 on PyPI
MosekMOSEK solves large-scale convex and…
unclear · top 15,000 on PyPI
quadprogSolves strictly convex quadratic programming…
copyleft · top 15,000 on PyPI
cvxpyCVXPY is a Python modeling language for…
permissive · top 5,000 on PyPI
osqpOSQP is a Python wrapper for the Operator…
permissive · top 5,000 on PyPI
optlangOptlang formulates and solves linear,…
permissive · top 15,000 on PyPI
PuLPPuLP is a linear and mixed-integer programming…
permissive · top 5,000 on PyPI
mipPython MIP models and solves mixed-integer…
copyleft · top 15,000 on PyPI
swiglpkswiglpk provides direct Python bindings to the…
copyleft · top 15,000 on PyPI
cbcboxcbcbox is a self-contained Python distribution…
copyleft · top 15,000 on PyPI