xcsp


Namexcsp JSON
Version 0.6.1 PyPI version JSON
download
home_pageNone
SummaryA unified launcher for XCSP solver
upload_time2025-08-12 11:25:44
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords xcsp solver constraint-programming launcher
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # XCSP-Launcher

[![License: LGPL v3+](https://img.shields.io/badge/License-LGPL%20v3%2B-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0.html)
[![Python 3.8+](https://img.shields.io/badge/Python-3.8%2B-blue.svg)](https://www.python.org/)
[![Documentation](https://app.readthedocs.org/projects/xcsp/badge/?version=latest)](https://xcsp-doc.tootatis.dev)
[![Python Tests](https://github.com/CPToolset/XCSP-Launcher/actions/workflows/tests.yml/badge.svg)](https://github.com/CPToolset/XCSP-Launcher/actions/workflows/tests.yml)
[![Release](https://github.com/CPToolset/XCSP-Launcher/actions/workflows/release.yml/badge.svg)](https://github.com/CPToolset/XCSP-Launcher/actions/workflows/release.yml)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=CPToolset_XCSP-Launcher&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=CPToolset_XCSP-Launcher)


---

**XCSP-Launcher** is a unified tool to **install**, **build**, and **execute** solvers supporting the [XCSP3](http://xcsp.org/) format.

It provides a streamlined way to manage solvers, automate their compilation, and run constraint programming instances through a standard, extensible interface.

---

## ✨ Features

- 🛠️ **Solver installation** from GitHub, GitLab, or custom URLs
- 🧱 **Automatic or manual build** (Gradle, CMake, Makefile, Cargo, Maven, etc.)
- 🔖 **Solver versioning** and multi-version management
- ⚡ **Unified execution interface** for solving XCSP3 instances
- 📝 **Support for solver configuration files** (`.xsc.yaml`) for reproducibility
- 📄 **Detailed logging** of build and run processes
- 🧩 **Extensible**: Easily add support for new solvers

---

## 📦 Installation

You can install `xcsp-launcher` via PyPI:

```bash
pip install xcsp
```

Or from source:

```bash
git clone https://github.com/CPToolset/xcsp-launcher.git
cd xcsp-launcher
pip install .
```


<details>
<summary>Debian/Ubuntu</summary>

Download the latest binary from [github releases](https://github.com/CPToolset/XCSP-Launcher/releases/) and run:

```bash
sudo dpkg -i xcsp-launcher*.deb
```
</details>

<details>
<summary>MacOS</summary>

Install via [Homebrew](https://brew.sh):

```bash
brew tap CPToolset/homebrew-xcsp-launcher
brew install xcsp
```
</details>


---

## 🚀 Quick Start

### Install a solver

```bash
xcsp install --id ace --name ACE --repo xcsp3team/ace --source github.com
```

This will:
- Clone the solver repository,
- Automatically detect the build system (or use configuration),
- Build the solver,
- Register it in your local solver repository.

---

### Solve an instance

```bash
xcsp solve --solver ace --instance path/to/instance.xml
```

---

## 🧰 Example Configuration (.xsc.yaml)

```yaml
name: "ACE"
id: "fr.cril.xcsp.ace"
git: "https://github.com/xcsp3team/ace"
language: "java"
build:
  mode: manual
  build_command: "gradle build -x test"
command:
  prefix: "java -jar"
  template: "{{executable}} {{instance}} {{options}}"
  always_include_options: "-npc=true -ev"
versions:
  - version: "2.4"
    git_tag: "2.4"
    executable: "build/lib/ACE-2.4.jar"
```

For more information about the format of the solver-configuration please see the documentation of [`metrics`](https://github.com/crillab/metrics-solvers/blob/main/format.md).  

---

## 🛠 Supported Build Systems (Auto-detection)

- Gradle (`build.gradle`)
- Maven (`pom.xml`)
- CMake (`CMakeLists.txt`)
- Make (`Makefile`)
- Rust Cargo (`Cargo.toml`)
- Python setuptools (`setup.py`, `pyproject.toml`)

---

## 📚 Other Projects

- [`xcsp-launcher-homebrew`](https://github.com/CPToolset/xcsp-launcher-homebrew) — Homebrew Tap for installing XCSP-Launcher easily on macOS/Linux.
- [`xcsp-metadata`](https://github.com/CPToolset/xcsp-metadata) — A metadata repository for XCSP3 instances (domains, categories, etc.).
- [`metrics-solver`](https://github.com/crillab/metrics-solvers) — Predefined solver configurations available by default with `xcsp-launcher` for easy installation and experimentation.

---

## 🚀 Projects Using XCSP-Launcher

- [`metrics`](https://github.com/crillab/metrics) — An open-source Python library to automate experimental campaigns and analyze solver performances.

---

## 🤝 Contributing

We welcome contributions!  
Feel free to open issues, suggest features, or submit pull requests.

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

---

## ⚖️ License

This project is licensed under the **LGPL v3+** License.  
See [LICENSE](LICENSE) for details.

---

## 🌍 Related Links

- [XCSP3 Official Website](http://xcsp.org/)
- [PyCSP3 Python Modeling Library](http://pycsp.org/)

---

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "xcsp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "XCSP, solver, constraint-programming, launcher",
    "author": null,
    "author_email": "Thibault Falque <contact@tootatis.dev>, Romain Wallon <contact@tootatis.dev>",
    "download_url": "https://files.pythonhosted.org/packages/1c/cf/4e0352ceebcce7f4a713de9560c364342e24a5e58dac465bb88b8ea38122/xcsp-0.6.1.tar.gz",
    "platform": null,
    "description": "# XCSP-Launcher\n\n[![License: LGPL v3+](https://img.shields.io/badge/License-LGPL%20v3%2B-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0.html)\n[![Python 3.8+](https://img.shields.io/badge/Python-3.8%2B-blue.svg)](https://www.python.org/)\n[![Documentation](https://app.readthedocs.org/projects/xcsp/badge/?version=latest)](https://xcsp-doc.tootatis.dev)\n[![Python Tests](https://github.com/CPToolset/XCSP-Launcher/actions/workflows/tests.yml/badge.svg)](https://github.com/CPToolset/XCSP-Launcher/actions/workflows/tests.yml)\n[![Release](https://github.com/CPToolset/XCSP-Launcher/actions/workflows/release.yml/badge.svg)](https://github.com/CPToolset/XCSP-Launcher/actions/workflows/release.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=CPToolset_XCSP-Launcher&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=CPToolset_XCSP-Launcher)\n\n\n---\n\n**XCSP-Launcher** is a unified tool to **install**, **build**, and **execute** solvers supporting the [XCSP3](http://xcsp.org/) format.\n\nIt provides a streamlined way to manage solvers, automate their compilation, and run constraint programming instances through a standard, extensible interface.\n\n---\n\n## \u2728 Features\n\n- \ud83d\udee0\ufe0f **Solver installation** from GitHub, GitLab, or custom URLs\n- \ud83e\uddf1 **Automatic or manual build** (Gradle, CMake, Makefile, Cargo, Maven, etc.)\n- \ud83d\udd16 **Solver versioning** and multi-version management\n- \u26a1 **Unified execution interface** for solving XCSP3 instances\n- \ud83d\udcdd **Support for solver configuration files** (`.xsc.yaml`) for reproducibility\n- \ud83d\udcc4 **Detailed logging** of build and run processes\n- \ud83e\udde9 **Extensible**: Easily add support for new solvers\n\n---\n\n## \ud83d\udce6 Installation\n\nYou can install `xcsp-launcher` via PyPI:\n\n```bash\npip install xcsp\n```\n\nOr from source:\n\n```bash\ngit clone https://github.com/CPToolset/xcsp-launcher.git\ncd xcsp-launcher\npip install .\n```\n\n\n<details>\n<summary>Debian/Ubuntu</summary>\n\nDownload the latest binary from [github releases](https://github.com/CPToolset/XCSP-Launcher/releases/) and run:\n\n```bash\nsudo dpkg -i xcsp-launcher*.deb\n```\n</details>\n\n<details>\n<summary>MacOS</summary>\n\nInstall via [Homebrew](https://brew.sh):\n\n```bash\nbrew tap CPToolset/homebrew-xcsp-launcher\nbrew install xcsp\n```\n</details>\n\n\n---\n\n## \ud83d\ude80 Quick Start\n\n### Install a solver\n\n```bash\nxcsp install --id ace --name ACE --repo xcsp3team/ace --source github.com\n```\n\nThis will:\n- Clone the solver repository,\n- Automatically detect the build system (or use configuration),\n- Build the solver,\n- Register it in your local solver repository.\n\n---\n\n### Solve an instance\n\n```bash\nxcsp solve --solver ace --instance path/to/instance.xml\n```\n\n---\n\n## \ud83e\uddf0 Example Configuration (.xsc.yaml)\n\n```yaml\nname: \"ACE\"\nid: \"fr.cril.xcsp.ace\"\ngit: \"https://github.com/xcsp3team/ace\"\nlanguage: \"java\"\nbuild:\n  mode: manual\n  build_command: \"gradle build -x test\"\ncommand:\n  prefix: \"java -jar\"\n  template: \"{{executable}} {{instance}} {{options}}\"\n  always_include_options: \"-npc=true -ev\"\nversions:\n  - version: \"2.4\"\n    git_tag: \"2.4\"\n    executable: \"build/lib/ACE-2.4.jar\"\n```\n\nFor more information about the format of the solver-configuration please see the documentation of [`metrics`](https://github.com/crillab/metrics-solvers/blob/main/format.md).  \n\n---\n\n## \ud83d\udee0 Supported Build Systems (Auto-detection)\n\n- Gradle (`build.gradle`)\n- Maven (`pom.xml`)\n- CMake (`CMakeLists.txt`)\n- Make (`Makefile`)\n- Rust Cargo (`Cargo.toml`)\n- Python setuptools (`setup.py`, `pyproject.toml`)\n\n---\n\n## \ud83d\udcda Other Projects\n\n- [`xcsp-launcher-homebrew`](https://github.com/CPToolset/xcsp-launcher-homebrew) \u2014 Homebrew Tap for installing XCSP-Launcher easily on macOS/Linux.\n- [`xcsp-metadata`](https://github.com/CPToolset/xcsp-metadata) \u2014 A metadata repository for XCSP3 instances (domains, categories, etc.).\n- [`metrics-solver`](https://github.com/crillab/metrics-solvers) \u2014 Predefined solver configurations available by default with `xcsp-launcher` for easy installation and experimentation.\n\n---\n\n## \ud83d\ude80 Projects Using XCSP-Launcher\n\n- [`metrics`](https://github.com/crillab/metrics) \u2014 An open-source Python library to automate experimental campaigns and analyze solver performances.\n\n---\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions!  \nFeel free to open issues, suggest features, or submit pull requests.\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n---\n\n## \u2696\ufe0f License\n\nThis project is licensed under the **LGPL v3+** License.  \nSee [LICENSE](LICENSE) for details.\n\n---\n\n## \ud83c\udf0d Related Links\n\n- [XCSP3 Official Website](http://xcsp.org/)\n- [PyCSP3 Python Modeling Library](http://pycsp.org/)\n\n---\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A unified launcher for XCSP solver",
    "version": "0.6.1",
    "project_urls": {
        "Changelog": "https://github.com/CPToolset/xcsp-launcher/blob/main/CHANGELOG.md",
        "Documentation": "https://xcsp.readthedocs.org",
        "Homepage": "https://tootatis.dev",
        "Issues": "https://github.com/CPToolset/xcsp-launcher/issues",
        "Repository": "https://github.com/CPToolset/xcsp-launcher"
    },
    "split_keywords": [
        "xcsp",
        " solver",
        " constraint-programming",
        " launcher"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ec5575f051592ca30519be3f1e4c650f7187b5108031c7f127d4cb8b0a3f776c",
                "md5": "631248117835a67da93f374a68bc2c16",
                "sha256": "b01d360cb2a0f504e931ba95b380c21594105d04ec9f16b10908c45ac13d096f"
            },
            "downloads": -1,
            "filename": "xcsp-0.6.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "631248117835a67da93f374a68bc2c16",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 37439,
            "upload_time": "2025-08-12T11:25:42",
            "upload_time_iso_8601": "2025-08-12T11:25:42.263247Z",
            "url": "https://files.pythonhosted.org/packages/ec/55/75f051592ca30519be3f1e4c650f7187b5108031c7f127d4cb8b0a3f776c/xcsp-0.6.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1ccf4e0352ceebcce7f4a713de9560c364342e24a5e58dac465bb88b8ea38122",
                "md5": "b071405ff1b7a60cf3b912f642a6affb",
                "sha256": "4bff559913f12d592c44931186a3131576b89877ca3b2f5416c467c90af2267a"
            },
            "downloads": -1,
            "filename": "xcsp-0.6.1.tar.gz",
            "has_sig": false,
            "md5_digest": "b071405ff1b7a60cf3b912f642a6affb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 34069,
            "upload_time": "2025-08-12T11:25:44",
            "upload_time_iso_8601": "2025-08-12T11:25:44.401313Z",
            "url": "https://files.pythonhosted.org/packages/1c/cf/4e0352ceebcce7f4a713de9560c364342e24a5e58dac465bb88b8ea38122/xcsp-0.6.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-12 11:25:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CPToolset",
    "github_project": "xcsp-launcher",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "xcsp"
}
        
Elapsed time: 1.84676s