skillfed

scs

Splitting conic solver

scs v3.2.11 4.1M downloads/30d#2,389 on PyPI
Permissive license MIT License Copyright (c) 2017 Brendan O'Donoghue Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) AGING released

What it is and what it does

scs is a Python binding to the Splitting Conic Solver, a numerical library for solving convex optimization problems formulated as conic programs. It wraps the underlying C solver and exposes it through a Python API, accepting problem data in standard conic form (linear objective, affine constraints, and cone membership constraints) and returning solutions via the solver's splitting algorithm.

The package depends on numpy and scipy for numerical operations and is distributed as prebuilt wheels for modern Python versions on major platforms. It is suitable for applications requiring reliable convex optimization where problems naturally fit the conic framework.

Use it for:

  • Solve semidefinite programming problems in machine learning and control theory applications
  • Optimize convex cone programs arising in portfolio optimization and financial modeling
  • Use as a backend solver in convex optimization frameworks that support conic interfaces
  • Prototype and validate convex formulations before deployment to production solvers
  • Research and development in optimization algorithms and convex geometry

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

scs is a Python interface to the Splitting Conic Solver, a numerical solver for convex optimization problems expressed in conic form.

Yes, if you need a reliable conic solver for convex optimization. The package is stable (MIT licensed, no known vulnerabilities), has broad platform support via prebuilt wheels, and ranks in the top 5000 PyPI packages by download volume. The aging maintenance status is not a blocker if your use case fits the current feature set; verify that the solver's capabilities match your problem structure before committing.

Install

scs on PyPI

pip

pip install scs

uv

uv add scs

poetry

poetry add scs

Installing scs

Before you install

Medium install friction due to compiled C extensions; prebuilt wheels available across macOS, Linux, and Windows. Package status is aging (217 days since last release), though no active maintenance issues are evident.

License in practice

MIT License permits unrestricted use, modification, and distribution with minimal restrictions—suitable for commercial and proprietary projects.

Quickstart

import scs
import numpy as np

# Define a simple conic problem and solve
data = {'A': np.array([[1.0, 0.0]]), 'b': np.array([1.0]), 'c': np.array([1.0, 1.0])}
cones = {'f': 0, 'l': 2}
solver = scs.SCS(data, cones)
result = solver.solve()

Requires numpy and scipy; C compiler needed if building from source rather than using prebuilt wheels.

Verify before relying

  • Specific solver capabilities and algorithm details beyond the conic interface
  • Performance characteristics and scalability limits for large-scale problems
  • Whether the aging maintenance status reflects stable maturity or reduced support

Package facts

License MIT License Copyright (c) 2017 Brendan O'Donoghue Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) (permissive)
Python support supports the current Python release (>=3.9)
Install friction medium — platform-specific wheel
Runtime dependencies 2 — numpy, scipy
Maintenance aging — 217 days since the last release
First released
Downloads 4,052,573/month — #2,389 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: scs-3.2.11-cp310-cp310-macosx_11_0_arm64.whl; scs-3.2.11-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; scs-3.2.11-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; scs-3.2.11-cp310-cp310-musllinux_1_2_x86_64.whl; scs-3.2.11-cp310-cp310-win_amd64.whl; scs-3.2.11-cp311-cp311-macosx_11_0_arm64.whl; scs-3.2.11-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; scs-3.2.11-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; scs-3.2.11-cp311-cp311-musllinux_1_2_x86_64.whl; scs-3.2.11-cp311-cp311-win_amd64.whl; scs-3.2.11-cp312-cp312-macosx_11_0_arm64.whl; scs-3.2.11-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; scs-3.2.11-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; scs-3.2.11-cp312-cp312-musllinux_1_2_x86_64.whl; scs-3.2.11-cp312-cp312-win_amd64.whl; scs-3.2.11-cp313-cp313-macosx_11_0_arm64.whl; scs-3.2.11-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; scs-3.2.11-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; scs-3.2.11-cp313-cp313-musllinux_1_2_x86_64.whl; scs-3.2.11-cp313-cp313-win_amd64.whl

License :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: UnixProgramming Language :: CProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: Implementation :: CPython

Tags

convex optimization solverconic programmingsplitting conic solverconvex cone solveroptimization library pythonnumerical optimizationsemidefinite programming
optimizationconvex-programmingnumerical-solver

More Mathematics packages