QAT-RPC
ZeroMQ-based RPC tooling for the OQC QAT (Quantum Assembly Toolchain) compiler and runtime. Enables remote execution of quantum programs (OpenQASM / QIR) through a client-server architecture with Prometheus metrics export.
Quick start
Starting the server
# In development (with Poetry)
poetry run qat_server
# Or directly via Python module
poetry run python -m qat_rpc.zmq.server
# After pip install (system-wide)
qat_server
The server is configured through environment variables:
| Variable | Description | Default |
|---|---|---|
RECEIVER_PORT |
ZMQ server port | 5556 |
METRICS_PORT |
Prometheus exporter port | 9250 |
QAT_CONFIG_PATH |
Path to QAT config file | None - runs in echo mode |
ENABLE_COMPILE_ENDPOINT |
Enable compile/execute endpoints | true |
Using the client
from qat_rpc.zmq import ZMQClient
client = ZMQClient()
# Compile and execute a program
results = client.execute_task(program, config)
# Or compile and execute separately
compiled = client.compile_program(program, config)
results = client.execute_compiled(compiled["package"], config)
# Query hardware information
version = client.api_version()
couplings = client.qpu_couplings()
CLI
# In development (with Poetry)
poetry run qat_comexe path/to/program.qasm --config '{"repeats": 100}'
# After pip install
qat_comexe path/to/program.qasm --config '{"repeats": 100}'
# QIR text or binary bitcode
poetry run qat_comexe path/to/program.ll
poetry run qat_comexe path/to/program.bc
# Pass a program string directly
poetry run qat_comexe "OPENQASM 2.0; ..." --host 192.168.1.10 --port 5556
Installation
We use Poetry for dependency management and require Python 3.10+.
poetry install
Development
Running checks
All checks are managed via Poe the Poet:
# Run all checks (format, lint, types, deps, licenses, vuln, test)
poetry run poe checks
# Individual tasks
poetry run poe format # check formatting
poetry run poe lint # ruff linting
poetry run poe types # pyright type checking
poetry run poe test # run tests
poetry run poe deps # deptry + import-linter
poetry run poe vuln # bandit + pip-audit
# Auto-fix formatting and lint issues
poetry run poe fix
Contributing
To take the first steps towards contributing to QAT-RPC, visit our contribution documents, which provides details about our process.
We also encourage new contributors to familiarise themselves with the code of conduct and to adhere to these expectations.
Assistance
For support, please reach out in the discussions tab of this repository or file an issue.
Licence
This code in this repository is licensed under the BSD 3-Clause Licence. Please see LICENSE for more information.
Feedback
Please let us know your feedback and any suggestions by reaching out in Discussions. Additionally, to report any concerns or code of conduct violations please use this form.
Metadata
Release files for qat-rpc 1.0.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 | Provenance | Actions |
|---|---|---|---|---|
| qat_rpc-1.0.0.tar.gz | 17.2 kB | With provenance | Details for qat_rpc-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| qat_rpc-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for qat_rpc-1.0.0-py3-none-any.whl |
Total release size: 37.3 kB
Release files / qat_rpc-1.0.0.tar.gz
| Download URL | qat_rpc-1.0.0.tar.gz |
|---|---|
| Size | 17.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aefeaa1941f942c9637505b55567439a6d47007b1a00e36b448fe2b2296dfec5
|
|
BLAKE2b-256 checksum How to use checksums |
c48ef8501e11327d704cd930472170b09540afa7ebdfafb675a714c126002f67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 24, 2026.
Transparency logRelease files / qat_rpc-1.0.0-py3-none-any.whl
| Download URL | qat_rpc-1.0.0-py3-none-any.whl |
|---|---|
| Size | 20.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b3f0f25e06ccd84285a684615be4808e5f671d1d442bfc9fa1422b32c381a95
|
|
BLAKE2b-256 checksum How to use checksums |
7557b625b22bccf3a0d0211996f9a48397da354d9fdd0f40536f14e9cf00d465
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 24, 2026.
Transparency logSecurity for qat-rpc 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for qat_rpc-1.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.