Skip to main content

xquad -- Primary user-facing package for the XQuad toolchain

xquad is the Python distribution most users should install. It provides the interactive Program / Session / RunResult API, a VM wrapper over the Rust interpreter, and re-exports the lower-level peer packages (xqffi, xqcp, xqsa) under a single namespace.

Install

pip install xquad

Pulls xqffi, xqcp, and xqsa as runtime dependencies. Peer installs stay valid (pip install xqffi xqcp xqsa) if you only need a subset.

Interactive usage

Load a program once, run it with different calldata, inspect outputs by slot:

from xquad.program import Program

program = Program.from_source("""
PUSH 0
INPUT r0
PUSH 1
INPUT r1
LOAD r0
LOAD r1
ADD
STOW r2
PUSH 0
OUTPUT r2
HALT
""")

session = program.session(output_slots=1)
session.set_calldata([40, 2])
result = session.run()
assert dict(result.outputs) == {0: 42}

Program.load(bytes) takes wire-format bytecode; Session.run() returns a RunResult with dict-keyed outputs (unset slots present as None), residual stack, and step count.

Full pipeline

Compile a problem via the DSL, execute, sample:

from xquad import cp, sa
from xquad.vm import VM

problem = cp.Problem("MyProblem")
# ... define inputs, model, objective, decoder ...
programs = problem.compile()

vm = VM()
vm.set_output_slots(1)
vm.run(programs.encoder)
model = vm.outputs()[0]

sample = sa.SolverCPU().solve(model).sample

Re-exports of peer packages are identity, not copies:

import xquad, xqcp
assert xquad.cp.Problem is xqcp.Problem   # always True

So isinstance works whether the caller imported directly from the peer or via the umbrella.

Subnamespaces

xquad.* Origin Contents
xquad.program first-party Interactive API -- Program, Session, RunResult
xquad.vm first-party VM wrapper over the Rust interpreter: assembles source, keeps calldata and limits across runs
xquad.types re-exports xqffi.vm Domain, XqmxModel, XqmxSample, triu, XqvmError and its faults, VM limits
xquad.asm is xqffi.asm parse_xqasm, assemble_source, disassemble
xquad.verifier is xqffi.verifier verify, verify_source
xquad.cp is xqcp DSL -- Problem, Types, expression builders
xquad.sa is xqsa Solvers -- SolverCPU, Solver

The raw FFI surface stays available as xqffi.vm.Vm.

Also see

  • xqffi -- PyO3 FFI bindings (low-level / conformance).
  • xqcp -- constraint-programming DSL.
  • xqsa -- solver adapters.
  • Running Programs -- end-to-end tour including the Program/Session, xqffi.vm, and xquad.vm surfaces.

License

AGPL-3.0-or-later.

Metadata

Release files for xquad 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xquad 0.5.1
File Size Uploaded Provenance Actions
xquad-0.5.1.tar.gz 42.2 kB Without provenance Details for xquad-0.5.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for xquad 0.5.1
File Interpreter ABI Platform Actions
xquad-0.5.1-py3-none-any.whl Python 3 none any Details for xquad-0.5.1-py3-none-any.whl

Total release size: 70.1 kB

Release files / xquad-0.5.1.tar.gz

Download URL xquad-0.5.1.tar.gz
Size 42.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f4f0422f5733e88fcea54af73e990c727f3a07c8c8dccb7f7bb4b5551fb9f09c
BLAKE2b-256 checksum
How to use checksums
56309972a48951db7202aff8159694488a55320136300c1767d668c8b06cb8b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / xquad-0.5.1-py3-none-any.whl

Download URL xquad-0.5.1-py3-none-any.whl
Size 27.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8983e02beb668da2cc4fae319592c6026f7d0d5964cec3493e13a685c4669be2
BLAKE2b-256 checksum
How to use checksums
80c573cc7b9321f8cd44036a6ad14c8a3f7a13b5a167ca40caf2accb61ceb999
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.5

Security for xquad 0.5.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

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