Skip to main content

A unified launcher for XCSP solver

Project description

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


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xcsp-0.6.3.tar.gz (34.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xcsp-0.6.3-py3-none-any.whl (37.5 kB view details)

Uploaded Python 3

File details

Details for the file xcsp-0.6.3.tar.gz.

File metadata

  • Download URL: xcsp-0.6.3.tar.gz
  • Upload date:
  • Size: 34.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for xcsp-0.6.3.tar.gz
Algorithm Hash digest
SHA256 0cd2f569537e6a28c8dd45f7b2e3d3568bbb1ee599fd6c8894a1680689f13dd4
MD5 8c5329dfaea7ce22fd041b19bd678ecd
BLAKE2b-256 45e7f43342d913d3392cb1ea04a89aec7021ac3b3cf3f045835db74b08dfa77c

See more details on using hashes here.

File details

Details for the file xcsp-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: xcsp-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 37.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for xcsp-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9c14e8c650c28fad6793507dd11f2a4a9d57c2d0e286df396cd6fd55885aa87b
MD5 32827af8c223a3e9b1c84e1e7db64a67
BLAKE2b-256 81f6cbfc02eb668cf71d05e9d6e3345dcc2b45603a7c802fadba78254154074d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page