A unified launcher for XCSP solver
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xcsp-0.7.0.tar.gz.
File metadata
- Download URL: xcsp-0.7.0.tar.gz
- Upload date:
- Size: 34.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7297e9a773d2a5d790109b946ada54ce18fe378ab4fcb3839185ad99f5da59d
|
|
| MD5 |
b83ae51e3da364c0226ef4c0d88e882e
|
|
| BLAKE2b-256 |
0b664728129fe370d13f652064ada553f91bf47c162b5a2a2240e0129724f4f0
|
File details
Details for the file xcsp-0.7.0-py3-none-any.whl.
File metadata
- Download URL: xcsp-0.7.0-py3-none-any.whl
- Upload date:
- Size: 37.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7325b77afb2b841d0be8c28405b78ef59ba1a5c6dc35229c34aa0c4ddf9158d
|
|
| MD5 |
003a141ed28b8860e5177ddf355f0fa9
|
|
| BLAKE2b-256 |
eb1c909dea5be1f9771ad697bc09f105414ec896ec574867d9932876caec82f5
|