QuBindR is a service that optimally binds quantum circuits to available quantum processors (QPUs) the QuBind QPU selection framework. It uses a constraint-based approach to match quantum circuits with QPUs based on various criteria such as fidelity, workload, and cost.
- Quantum circuit parsing from QASM format
- Constraint-based QPU matching
- Optimization based on weighted criteria (fidelity, latency, cost)
- RESTful API using FastAPI
uv is a fast Python package installer and resolver.
- Install uv if you don't have it already:
curl -sSf https://astral.sh/uv/install.sh | bash- Clone the repository:
git clone https://github.com/yourusername/qubindr.git
cd qubindr- Create a virtual environment and install dependencies:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .pip install -e .fastapi run src/api.py --reloadThe server will start at http://127.0.0.1:8000 by default.
GET /: Root endpoint with basic informationGET /qpus: Get available quantum processorsGET /qpus/all: Get all quantum processors (including unavailable)POST /bind: Get optimal quantum processor for a given circuit
API documentation is available at http://127.0.0.1:8000/docs when the server is running.
qubindr/
├── src/
│ ├── api.py # FastAPI application
│ ├── circuits.py # Circuit parsing and manipulation
│ ├── mock.py # Mock QPU definitions
│ ├── qubind.py # Core binding engine
│ ├── constraint_utils.py # Utilities for constraints
│ └── qutypes.py # Type definitions
└── README.md # This file