Skip to main content

XCSP-Launcher

License: LGPL v3+ Python 3.8+ Documentation Python Tests Release Quality Gate Status


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
MacOS

Install via Homebrew:

brew tap CPToolset/homebrew-xcsp-launcher
brew install xcsp

🚀 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 with xcsp-launcher for 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)

Source distribution for xcsp 0.7.0
File Size Uploaded
xcsp-0.7.0.tar.gz 34.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xcsp 0.7.0
File Interpreter ABI Platform
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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page