ECOS is an open-source numerical software package for solving optimization problems with second-order cone constraints (SOCPs). This includes linear (LPs), quadratic (QPs), and quadratically-constrained quadratic programs (QCQPs). ECOS also supports a small number of binary or integer variables by employing a simple branch and bound technique. ECOS is written entirely in ANSI C and does not depend on dedicated libraries for the required linear algebra computations operating on the (sparse) problem data. As a consequence, it can be used to solve optimization problems on any embedded system for which a C-compiler is available. The implemented solution algorithm is an interior-point method that is an efficient standard algorithm for solving convex optimization problems. It uses regularization and iterative refinement techniques to be numerically robust. The solution methods have been developed in cooperation with Prof. Stephen Boyd of Stanford University. A number of helpful contributors have provided interfaces to the following programming and modeling languages: CVX (Michael Grant), YALMIP (Johan Löfberg), Julia (João Felipe Santos, Iain Dunning, Anthony Kelman)