<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-dark-rs.png" width=60%>
<source media="(prefers-color-scheme: light)" srcset="https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-light-rs.png" width=60%>
<img alt="Clarabel.jl logo" src="https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-light-rs.png" height="25">
</picture>
<h1 align="center" margin=0px>
Interior Point Conic Optimization for Rust and Python
</h1>
<p align="center">
<a href="https://github.com/oxfordcontrol/Clarabel.rs/actions"><img src="https://github.com/oxfordcontrol/Clarabel.rs/workflows/ci/badge.svg?branch=main"></a>
<a href="https://codecov.io/gh/oxfordcontrol/Clarabel.rs"><img src="https://codecov.io/gh/oxfordcontrol/Clarabel.rs/branch/main/graph/badge.svg"></a>
<a href="https://oxfordcontrol.github.io/ClarabelDocs/stable"><img src="https://img.shields.io/badge/Documentation-stable-purple.svg"></a>
<a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a>
<a href="https://github.com/oxfordcontrol/Clarabel.rs/releases"><img src="https://img.shields.io/badge/Release-v0.7.1-blue.svg"></a>
</p>
<p align="center">
<a href="#features">Features</a> •
<a href="#installation">Installation</a> •
<a href="#license-">License</a> •
<a href="https://oxfordcontrol.github.io/ClarabelDocs/stable">Documentation</a>
</p>
__Clarabel.rs__ is a Rust implementation of an interior point numerical solver for convex optimization problems using a novel homogeneous embedding. Clarabel.rs solves the following problem:
$$
\begin{array}{r}
\text{minimize} & \frac{1}{2}x^T P x + q^T x\\\\[2ex]
\text{subject to} & Ax + s = b \\\\[1ex]
& s \in \mathcal{K}
\end{array}
$$
with decision variables
$x \in \mathbb{R}^n$,
$s \in \mathbb{R}^m$
and data matrices
$P=P^\top \succeq 0$,
$q \in \mathbb{R}^n$,
$A \in \mathbb{R}^{m \times n}$, and
$b \in \mathbb{R}^m$.
The convex set $\mathcal{K}$ is a composition of convex cones.
__For more information see the Clarabel Documentation ([stable](https://oxfordcontrol.github.io/ClarabelDocs/stable) | [dev](https://oxfordcontrol.github.io/ClarabelDocs/dev)).__
Clarabel is also available in a Julia implementation. See [here](https://github.com/oxfordcontrol/Clarabel.jl).
## Features
* __Versatile__: Clarabel.rs solves linear programs (LPs), quadratic programs (QPs), second-order cone programs (SOCPs) and semidefinite programs (SDPs). It also solves problems with exponential, power cone and generalized power cone constraints.
* __Quadratic objectives__: Unlike interior point solvers based on the standard homogeneous self-dual embedding (HSDE), Clarabel.rs handles quadratic objectives without requiring any epigraphical reformulation of the objective. It can therefore be significantly faster than other HSDE-based solvers for problems with quadratic objective functions.
* __Infeasibility detection__: Infeasible problems are detected using a homogeneous embedding technique.
* __Open Source__: Our code is available on [GitHub](https://github.com/oxfordcontrol/Clarabel.rs) and distributed under the Apache 2.0 License
# Installation
Clarabel can be imported to Cargo based Rust projects by adding
```rust
[dependencies]
clarabel = "0"
```
to the project's `Cargo.toml` file. To install from source, see the [Rust Installation Documentation](https://oxfordcontrol.github.io/ClarabelDocs/stable/rust/installation_rs/).
To use the Python interface to the solver:
```
pip install clarabel
```
To install the Python interface from source, see the [Python Installation Documentation](https://oxfordcontrol.github.io/ClarabelDocs/stable/python/installation_py/).
## License 🔍
This project is licensed under the Apache License 2.0 - see the [LICENSE.md](LICENSE.md) file for details.
Raw data
{
"_id": null,
"home_page": "",
"name": "clarabel",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "convex,optimization,conic,solver,linear-programming",
"author": "Paul Goulart <paul.goulart@eng.ox.ac.uk>",
"author_email": "Paul Goulart <paul.goulart@eng.ox.ac.uk>",
"download_url": "https://files.pythonhosted.org/packages/a2/1b/571478ec8a425cce3736eb51de8db45a9ea6a6a5c8be4705711306a6baea/clarabel-0.7.1.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n<picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-dark-rs.png\" width=60%>\n <source media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-light-rs.png\" width=60%>\n <img alt=\"Clarabel.jl logo\" src=\"https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-light-rs.png\" height=\"25\">\n</picture>\n<h1 align=\"center\" margin=0px>\nInterior Point Conic Optimization for Rust and Python\n</h1>\n<p align=\"center\">\n <a href=\"https://github.com/oxfordcontrol/Clarabel.rs/actions\"><img src=\"https://github.com/oxfordcontrol/Clarabel.rs/workflows/ci/badge.svg?branch=main\"></a>\n <a href=\"https://codecov.io/gh/oxfordcontrol/Clarabel.rs\"><img src=\"https://codecov.io/gh/oxfordcontrol/Clarabel.rs/branch/main/graph/badge.svg\"></a>\n <a href=\"https://oxfordcontrol.github.io/ClarabelDocs/stable\"><img src=\"https://img.shields.io/badge/Documentation-stable-purple.svg\"></a>\n <a href=\"https://opensource.org/licenses/Apache-2.0\"><img src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\"></a>\n <a href=\"https://github.com/oxfordcontrol/Clarabel.rs/releases\"><img src=\"https://img.shields.io/badge/Release-v0.7.1-blue.svg\"></a>\n</p>\n\n<p align=\"center\">\n <a href=\"#features\">Features</a> \u2022\n <a href=\"#installation\">Installation</a> \u2022\n <a href=\"#license-\">License</a> \u2022\n <a href=\"https://oxfordcontrol.github.io/ClarabelDocs/stable\">Documentation</a>\n</p>\n\n__Clarabel.rs__ is a Rust implementation of an interior point numerical solver for convex optimization problems using a novel homogeneous embedding. Clarabel.rs solves the following problem:\n\n$$\n\\begin{array}{r}\n\\text{minimize} & \\frac{1}{2}x^T P x + q^T x\\\\\\\\[2ex]\n \\text{subject to} & Ax + s = b \\\\\\\\[1ex]\n & s \\in \\mathcal{K}\n \\end{array}\n$$\n\nwith decision variables\n$x \\in \\mathbb{R}^n$,\n$s \\in \\mathbb{R}^m$\nand data matrices\n$P=P^\\top \\succeq 0$,\n$q \\in \\mathbb{R}^n$,\n$A \\in \\mathbb{R}^{m \\times n}$, and\n$b \\in \\mathbb{R}^m$.\nThe convex set $\\mathcal{K}$ is a composition of convex cones.\n\n__For more information see the Clarabel Documentation ([stable](https://oxfordcontrol.github.io/ClarabelDocs/stable) | [dev](https://oxfordcontrol.github.io/ClarabelDocs/dev)).__\n\nClarabel is also available in a Julia implementation. See [here](https://github.com/oxfordcontrol/Clarabel.jl).\n \n\n## Features\n\n* __Versatile__: Clarabel.rs solves linear programs (LPs), quadratic programs (QPs), second-order cone programs (SOCPs) and semidefinite programs (SDPs). It also solves problems with exponential, power cone and generalized power cone constraints.\n* __Quadratic objectives__: Unlike interior point solvers based on the standard homogeneous self-dual embedding (HSDE), Clarabel.rs handles quadratic objectives without requiring any epigraphical reformulation of the objective. It can therefore be significantly faster than other HSDE-based solvers for problems with quadratic objective functions.\n* __Infeasibility detection__: Infeasible problems are detected using a homogeneous embedding technique.\n* __Open Source__: Our code is available on [GitHub](https://github.com/oxfordcontrol/Clarabel.rs) and distributed under the Apache 2.0 License\n\n# Installation\n\nClarabel can be imported to Cargo based Rust projects by adding\n```rust\n[dependencies]\nclarabel = \"0\" \n```\nto the project's `Cargo.toml` file. To install from source, see the [Rust Installation Documentation](https://oxfordcontrol.github.io/ClarabelDocs/stable/rust/installation_rs/).\n\nTo use the Python interface to the solver:\n```\npip install clarabel\n```\n\nTo install the Python interface from source, see the [Python Installation Documentation](https://oxfordcontrol.github.io/ClarabelDocs/stable/python/installation_py/).\n\n## License \ud83d\udd0d\nThis project is licensed under the Apache License 2.0 - see the [LICENSE.md](LICENSE.md) file for details.\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Clarabel Conic Interior Point Solver for Rust / Python",
"version": "0.7.1",
"project_urls": {
"Source Code": "https://github.com/oxfordcontrol/Clarabel.rs"
},
"split_keywords": [
"convex",
"optimization",
"conic",
"solver",
"linear-programming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "30e06fd507d8e6be78a1ded2c076f10c30016c137e6a5eed46336de9875d1708",
"md5": "2e9c54c4737ba1164247d66baf18374c",
"sha256": "32980b578842d17abe3d277df2d31a6b8bff3facf33b169c74d59b2ada10b61b"
},
"downloads": -1,
"filename": "clarabel-0.7.1-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"has_sig": false,
"md5_digest": "2e9c54c4737ba1164247d66baf18374c",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 900610,
"upload_time": "2024-03-01T23:17:00",
"upload_time_iso_8601": "2024-03-01T23:17:00.834838Z",
"url": "https://files.pythonhosted.org/packages/30/e0/6fd507d8e6be78a1ded2c076f10c30016c137e6a5eed46336de9875d1708/clarabel-0.7.1-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2c498c141961a18690d3ecc1912723c868aaef175f7c403168a2b3e00117e368",
"md5": "4330c9db449d36a2d3a31c7c101f477c",
"sha256": "b4d414b9db040effa186f9e048de2c7d3e38b6edcadaaa2432a52b6451ba9999"
},
"downloads": -1,
"filename": "clarabel-0.7.1-cp37-abi3-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "4330c9db449d36a2d3a31c7c101f477c",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 456793,
"upload_time": "2024-03-01T23:17:03",
"upload_time_iso_8601": "2024-03-01T23:17:03.025641Z",
"url": "https://files.pythonhosted.org/packages/2c/49/8c141961a18690d3ecc1912723c868aaef175f7c403168a2b3e00117e368/clarabel-0.7.1-cp37-abi3-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4d9416c891a59fec55cec953b1b9efaf49d54ef9e5f08c44ec7efc47dac532bc",
"md5": "b38d28dbb6c23675653a31de193116ee",
"sha256": "ec0fde90a467e07010176b0bd159ab8cb11c59c8ff0a09580af1ac77d7861971"
},
"downloads": -1,
"filename": "clarabel-0.7.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "b38d28dbb6c23675653a31de193116ee",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 1237505,
"upload_time": "2024-03-01T23:17:04",
"upload_time_iso_8601": "2024-03-01T23:17:04.882508Z",
"url": "https://files.pythonhosted.org/packages/4d/94/16c891a59fec55cec953b1b9efaf49d54ef9e5f08c44ec7efc47dac532bc/clarabel-0.7.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4e7f79f346a5f9afb945325a4ed2627edd1c6f5560c70ec41d03af097326f25a",
"md5": "8861b77b51c0e6d8764ffc35e173f3cc",
"sha256": "754e2681eb74e7f6fc35612ae58219d76819a0bc1b67771752b6f5425f72c1f8"
},
"downloads": -1,
"filename": "clarabel-0.7.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "8861b77b51c0e6d8764ffc35e173f3cc",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 1251706,
"upload_time": "2024-03-01T23:17:06",
"upload_time_iso_8601": "2024-03-01T23:17:06.865550Z",
"url": "https://files.pythonhosted.org/packages/4e/7f/79f346a5f9afb945325a4ed2627edd1c6f5560c70ec41d03af097326f25a/clarabel-0.7.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "23a81ad08663e330386479d1f8cf24119bc8740bf1fd8ef963ca32dcc8260ab5",
"md5": "a94ac38734611a4c2454683a657c0e97",
"sha256": "33283d190f1e2a3b8559c928f0eb0d1fefc45aad334fd0566cdf5eaa94606a13"
},
"downloads": -1,
"filename": "clarabel-0.7.1-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "a94ac38734611a4c2454683a657c0e97",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 1281596,
"upload_time": "2024-03-01T23:17:08",
"upload_time_iso_8601": "2024-03-01T23:17:08.686931Z",
"url": "https://files.pythonhosted.org/packages/23/a8/1ad08663e330386479d1f8cf24119bc8740bf1fd8ef963ca32dcc8260ab5/clarabel-0.7.1-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2b86a360bcbbb48b3a707e9fb28d5136ac0e5faf423e2b20526ae974e2af61d1",
"md5": "dcb56e5c46d35275f691d7dd57ce0c6d",
"sha256": "519f9b1daba08f909c106da8b5fd52937cfbc4ba27086c4cbd9728d168cfbc5c"
},
"downloads": -1,
"filename": "clarabel-0.7.1-cp37-abi3-win32.whl",
"has_sig": false,
"md5_digest": "dcb56e5c46d35275f691d7dd57ce0c6d",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 304462,
"upload_time": "2024-03-01T23:17:10",
"upload_time_iso_8601": "2024-03-01T23:17:10.657318Z",
"url": "https://files.pythonhosted.org/packages/2b/86/a360bcbbb48b3a707e9fb28d5136ac0e5faf423e2b20526ae974e2af61d1/clarabel-0.7.1-cp37-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3fcefd1b75023d321164d2bf9fa4cc5e78d9057e4f2366baac275e830507a846",
"md5": "93b309fc903d681f1b170ce4fb7fa944",
"sha256": "33faf5a02465eb5f7f7380d892ce3cf1d293a3efefcea18d637c618f012f5f36"
},
"downloads": -1,
"filename": "clarabel-0.7.1-cp37-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "93b309fc903d681f1b170ce4fb7fa944",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 321454,
"upload_time": "2024-03-01T23:17:11",
"upload_time_iso_8601": "2024-03-01T23:17:11.823970Z",
"url": "https://files.pythonhosted.org/packages/3f/ce/fd1b75023d321164d2bf9fa4cc5e78d9057e4f2366baac275e830507a846/clarabel-0.7.1-cp37-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a21b571478ec8a425cce3736eb51de8db45a9ea6a6a5c8be4705711306a6baea",
"md5": "b3d8d147f64f27a267c0cf5d93ccb768",
"sha256": "a30ab135f475c5bc78329fd7df575291155e6055bcaf02124eb610b8ad176396"
},
"downloads": -1,
"filename": "clarabel-0.7.1.tar.gz",
"has_sig": false,
"md5_digest": "b3d8d147f64f27a267c0cf5d93ccb768",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 147943,
"upload_time": "2024-03-01T23:17:13",
"upload_time_iso_8601": "2024-03-01T23:17:13.364573Z",
"url": "https://files.pythonhosted.org/packages/a2/1b/571478ec8a425cce3736eb51de8db45a9ea6a6a5c8be4705711306a6baea/clarabel-0.7.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-01 23:17:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "oxfordcontrol",
"github_project": "Clarabel.rs",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "clarabel"
}