skillfed

daqp

DAQP: A dual active-set QP solver

daqp v0.8.7 460.8K downloads/30d#6,538 on PyPI114
Permissive license MIT Active released

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

DAQP is a dual active-set solver for convex quadratic programs, including mixed-integer variants, with a C-based implementation that interfaces to Python.

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

pip

pip install daqp

uv

uv add daqp

poetry

poetry add daqp

Installing daqp

Before you install

Medium install friction due to compiled wheels across multiple platforms. Active maintenance with recent commits and no runtime dependencies simplify integration.

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)

Wheels available for multiple Python versions and platforms; verify your Python version and OS match available distributions.

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

quadratic programming solverconvex QP solvermixed-integer quadratic programmingactive-set QPembedded optimizationconstrained quadratic optimizationLDL factorization QP
optimizationquadratic-programmingembedded-systems

More Mathematics packages