XCSP-Launcher
XCSP-Launcher is a unified tool to install, build, and execute solvers supporting the XCSP3 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:
pip install xcsp
Or from source:
git clone https://github.com/CPToolset/xcsp-launcher.git
cd xcsp-launcher
pip install .
Debian/Ubuntu
Download the latest binary from github releases and run:
sudo dpkg -i xcsp-launcher*.deb
🚀 Quick Start
Install a solver
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
xcsp solve --solver ace --instance path/to/instance.xml
🧰 Example Configuration (.xsc.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.
🛠 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— Homebrew Tap for installing XCSP-Launcher easily on macOS/Linux.xcsp-metadata— A metadata repository for XCSP3 instances (domains, categories, etc.).metrics-solver— Predefined solver configurations available by default withxcsp-launcherfor easy installation and experimentation.
🚀 Projects Using XCSP-Launcher
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 for guidelines.
⚖️ License
This project is licensed under the LGPL v3+ License.
See LICENSE for details.
🌍 Related Links
Metadata
Release files for xcsp 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xcsp-0.7.0.tar.gz | 34.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xcsp-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.3 kB
Release files / xcsp-0.7.0.tar.gz
| Download URL | xcsp-0.7.0.tar.gz |
|---|---|
| Size | 34.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7297e9a773d2a5d790109b946ada54ce18fe378ab4fcb3839185ad99f5da59d
|
|
BLAKE2b-256 checksum How to use checksums |
0b664728129fe370d13f652064ada553f91bf47c162b5a2a2240e0129724f4f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / xcsp-0.7.0-py3-none-any.whl
| Download URL | xcsp-0.7.0-py3-none-any.whl |
|---|---|
| Size | 37.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c7325b77afb2b841d0be8c28405b78ef59ba1a5c6dc35229c34aa0c4ddf9158d
|
|
BLAKE2b-256 checksum How to use checksums |
eb1c909dea5be1f9771ad697bc09f105414ec896ec574867d9932876caec82f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|