# Related Projects¶

CVXPY is part of a larger ecosystem of optimization software. We list here the optimization packages most relevant to CVXPY users.

## Modeling frameworks¶

- DCCP is a CVXPY extension for modeling and solving difference of convex problems.
- NCVX is a CVXPY extension for modeling and solving problems with convex objectives and decision variables from a nonconvex set.
- cvxstoc is a CVXPY extension that makes it easy to code and solve stochastic optimization problems, i.e., convex optimization problems that involve random variables.
- SnapVX is a Python-based convex optimization solver for problems defined on graphs.
- CVX is a MATLAB-embedded modeling language for convex optimization problems. CVXPY is based on CVX.
- Convex.jl is a Julia-embedded modeling language for convex optimization problems. Convex.jl is based on CVXPY and CVX.
- CVXcanon is a C++ package that factors out the common operations that modeling languages like CVXPY, CVX, and Convex.jl perform.
- GPkit is a Python package for defining and manipulating geometric programming (GP) models.
- PICOS is a user-friendly python interface to many linear and conic optimization solvers.

## Solvers¶

- ECOS is an open-source C library for solving convex second-order and exponential cone programs.
- CVXOPT is an open-source Python package for convex optimization.
- SCS is an open-source C library for solving large-scale convex cone problems.
- Elemental is an open-source C++ library for distributed-memory dense and sparse-direct linear algebra and optimization.
- GLPK is an open-source C library for solving linear programs and mixed integer linear programs.
- GUROBI is a commercial solver for mixed integer second-order cone programs.
- MOSEK is a commercial solver for mixed integer second-order cone programs and semidefinite programs.
- XPRESS is a commercial solver for mixed integer quadratic, quadratically constrained, and second-order cone programs.