daqp
DAQP: A dual active-set QP solver
Decision gist · record as of 2026-08-14
Yes, if you need a lightweight, self-contained quadratic program solver for embedded or real-time use. The MIT license, active maintenance, zero runtime dependencies, and broad platform coverage make it low-risk to adopt. Install only if your problem fits the standard convex QP form; for general nonlinear optimization or exotic constraints, a more general solver may be necessary.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Wheels available for multiple Python versions and platforms; verify your Python version and OS match available distributions.
- Medium install friction due to compiled wheels across multiple platforms.
- Active maintenance with recent commits and no runtime dependencies simplify integration.
License · maintenance · safety
MIT (permissive) — MIT license permits unrestricted use, modification, and distribution in commercial and private projects with minimal attribution requirements.
last release 2026-05-19 (87 days) · last repo commit 2026-08-14 · 114 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 460,778 downloads/mo, #6,538 on PyPI
Alternatives
Verify before relying
pip install daqp
import daqp
# Solve: minimize 0.5*x'*H*x + f'*x subject to l <= x <= u, bl <= A*x <= bu
solver = daqp.DAQP()
result = solver.solve(H, f, A, l, u, bl, bu)- Whether Python version support is truly unspecified or implicitly limited by wheel availability.
- Performance characteristics and scalability limits for problem size and structure.
- Availability and completeness of Python API documentation beyond the linked external docs.
- Whether the solver supports warm-starting from previous solutions.
What it is and what it does
DAQP solves convex quadratic programs—optimization problems that minimize a quadratic objective subject to linear and box constraints—using a dual active-set algorithm. It also handles mixed-integer variants where some constraints enforce binary choices. The solver is written in C with no external library dependencies and is designed for embedded and real-time applications; the Python interface wraps this compiled core.
You would use DAQP when you need a lightweight, self-contained QP solver for control, robotics, or optimization tasks where standard solvers may be too heavy or their dependencies problematic. It trades generality for speed and portability—it handles the standard QP form well but is not a general-purpose nonlinear optimizer.
Use it for
- Model predictive control in embedded systems where a fast, dependency-free QP solver is essential.
- Real-time optimization in robotics or autonomous systems requiring tight computational budgets.
- Mixed-integer quadratic programming for discrete decision problems in scheduling or resource allocation.
- Prototyping optimization algorithms in research without heavy solver dependencies.
- Integration into applications where solver licensing or footprint is a constraint.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need a lightweight, self-contained quadratic program solver for embedded or real-time use.
The MIT license, active maintenance, zero runtime dependencies, and broad platform coverage make it low-risk to adopt. Install only if your problem fits the standard convex QP form; for general nonlinear optimization or exotic constraints, a more general solver may be necessary.
Install
daqp on PyPI
Before you install
Medium install friction due to compiled wheels across multiple platforms. Active maintenance with recent commits and no runtime dependencies simplify integration.
Wheels available for multiple Python versions and platforms; verify your Python version and OS match available distributions.
License in practice
MIT license permits unrestricted use, modification, and distribution in commercial and private projects with minimal attribution requirements.
Quickstart
pip install daqp
import daqp
# Solve: minimize 0.5*x'*H*x + f'*x subject to l <= x <= u, bl <= A*x <= bu
solver = daqp.DAQP()
result = solver.solve(H, f, A, l, u, bl, bu)
Verify before relying
- Whether Python version support is truly unspecified or implicitly limited by wheel availability.
- Performance characteristics and scalability limits for problem size and structure.
- Availability and completeness of Python API documentation beyond the linked external docs.
- Whether the solver supports warm-starting from previous solutions.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 87 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 460,778 / month, #6,538 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: daqp-0.8.7-cp310-cp310-macosx_10_9_x86_64.whl; daqp-0.8.7-cp310-cp310-macosx_11_0_arm64.whl; daqp-0.8.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; daqp-0.8.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; daqp-0.8.7-cp310-cp310-musllinux_1_2_aarch64.whl; daqp-0.8.7-cp310-cp310-win32.whl; daqp-0.8.7-cp310-cp310-win_amd64.whl; daqp-0.8.7-cp311-cp311-macosx_10_9_x86_64.whl; daqp-0.8.7-cp311-cp311-macosx_11_0_arm64.whl; daqp-0.8.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; daqp-0.8.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; daqp-0.8.7-cp311-cp311-musllinux_1_2_aarch64.whl; daqp-0.8.7-cp311-cp311-win32.whl; daqp-0.8.7-cp311-cp311-win_amd64.whl; daqp-0.8.7-cp312-cp312-macosx_10_13_x86_64.whl; daqp-0.8.7-cp312-cp312-macosx_11_0_arm64.whl; daqp-0.8.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; daqp-0.8.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; daqp-0.8.7-cp312-cp312-musllinux_1_2_aarch64.whl; daqp-0.8.7-cp312-cp312-win32.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “quadratic programming solver”
- daqpDAQP is a dual active-set solver for convex quadratic programs,…
- highspyHighspy is a Python wrapper around HiGHS, a high-performance solver…
- clarabelClarabel is an interior-point conic optimization solver that handles…
Give your agent the search over MCP, or paste the wish link into any chat.
More Mathematics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.
Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.
onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.
Install it if you have ONNX models to run in production or development.
See also qpsolvers · quadprog · Mosek · osqp · qdldl · proxsuite · cvxopt · gekko · dimod · cvxpy