Skip to main content

quip-solver-core

This repository is the shared Quip solver contract. A solver binary accepts Ising problems and returns spin configurations with their energies.

Rust solvers supply a Sampler and call run. C and C++ solvers register sampling callbacks with the C library. The Python wheel and npm package carry consensus primitives and generated gRPC stubs. Python and TypeScript solvers provide their own session loops.

The full contract is in SPEC.md. CHANGELOG.md lists the 0.0.8 changes. MIGRATING.md covers solver API changes. Releases from 0.0.2-rc3 require protocol version 2. Update the coordinator and solvers together using the coordinator upgrade guide. The miner hardware guide describes how a GPU or other device draws lease problems. The topology file format defines the .bin.gz files that hold the family vectors topologies.

Crates

Crate What it holds
quip-solver-core The Sampler trait, Ising and compressed sparse row types, inverse-temperature ladder, adaptive budget, session loop
quip-proto Generated tonic and prost stubs for proto/quip/v1/miner.proto
quip-protocol Wire codec, energy and diversity scoring, handshake, ChaCha8 draw
ising-generators Family descriptors, canonical instances, ChaCha8 streams, and nonce derivation, no_std
quip-solver-conformance Golden vectors and the scripted session driver
quip-protocol-py PyO3 bindings exposing quip-protocol scoring and wire primitives to Python
quip-protocol-wasm WebAssembly bindings behind the npm package
quip-solver-c C binary interface over the session loop, shipped as a release artifact

Install

Every binding ships from its own registry. The C library ships as a release artifact, because a C consumer wants the compiled object and the header.

Rust

[dependencies]
quip-solver-core = "0.0.8"

[dev-dependencies]
quip-solver-conformance = "0.0.8"

One dependency is enough. quip-solver-core re-exports quip_proto and quip_protocol. Default Sampler implementations use IsingGraph<f64> and quip_solver_core::quip_protocol::scoring::energy_milli.

A solver can select Sampler<Milli> to receive exact wire coefficients. Import Milli from quip_solver_core::coefficient. Its stored integer is available through .0. Score those integers with quip_solver_core::quip_protocol::scoring::energy_from_milli. The Rust example shows this choice.

Python

pip install quip-solver-core

Node packages

npm install @quip.network/quip-solver-core

Native libraries

Download quip-solver-clib-<tag>-linux-amd64.tar.gz from the release page. It holds libquip_solver_c.so, libquip_solver_c.a, and include/quip_solver.h.

Samples

examples/ holds a conformant mock solver in four languages. Rust, C++, Python, and TypeScript each consume the published artifact and pass quip-solver-drive. Start there rather than from this README.

Conformance

A solver is conformant when quip-solver-drive reports a conformant session and a conformant --solve run. The --family gate applies to a solver that lists generated families.

cargo build -p quip-solver-conformance --bin quip-solver-drive --release
./target/release/quip-solver-drive <solver-binary> unix:///tmp/quip-check.sock
./target/release/quip-solver-drive --solve <solver-binary>
./target/release/quip-solver-drive --family <solver-binary> unix:///tmp/quip-family.sock

Exit code 0 means conformant. With --family, a revision that the solver lists in generated_families but the driver cannot drive fails the gate. The driver spawns any executable, so this works for a solver in any language.

Licence

Apache-2.0. See LICENSE and NOTICE.

Metadata

Release files for quip-solver-core 0.0.8

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

Source distribution (sdist)

Source distribution for quip-solver-core 0.0.8
File Size Uploaded Provenance Actions
quip_solver_core-0.0.8.tar.gz 692.3 kB Without provenance Details for quip_solver_core-0.0.8.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for quip-solver-core 0.0.8
File Interpreter ABI Platform Actions
quip_solver_core-0.0.8-cp311-abi3-manylinux_2_34_x86_64.whl CPython 3.11 abi3 Linux glibc 2.34+ x86-64 Details for quip_solver_core-0.0.8-cp311-abi3-manylinux_2_34_x86_64.whl
quip_solver_core-0.0.8-cp311-abi3-manylinux_2_34_aarch64.whl CPython 3.11 abi3 Linux glibc 2.34+ ARM64 Details for quip_solver_core-0.0.8-cp311-abi3-manylinux_2_34_aarch64.whl
quip_solver_core-0.0.8-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details for quip_solver_core-0.0.8-cp311-abi3-macosx_11_0_arm64.whl

Total release size: 1.5 MB

Release files / quip_solver_core-0.0.8.tar.gz

Download URL quip_solver_core-0.0.8.tar.gz
Size 692.3 kB
Tags Source
SHA-256 checksum
How to use checksums
38c3b2540a79bba2848405f3683d55b520cb5eb5a93ff5365017f9d26d4af400
BLAKE2b-256 checksum
How to use checksums
49aca669f28b724b5631f9d69f3387f1c67fbcfeb64de33d5b5943d2e3c2bb37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.11.18

Release files / quip_solver_core-0.0.8-cp311-abi3-manylinux_2_34_x86_64.whl

Download URL quip_solver_core-0.0.8-cp311-abi3-manylinux_2_34_x86_64.whl
Size 285.6 kB
Tags CPython 3.11 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
5b8ebef8fae60565f7041ceed8a094debde4c6edcec7df679011b0545101d89d
BLAKE2b-256 checksum
How to use checksums
04dee2eaec6f5e63e27ccb60d6d830afaf777ae04a44ee268d2cea173981f800
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.11.18

Release files / quip_solver_core-0.0.8-cp311-abi3-manylinux_2_34_aarch64.whl

Download URL quip_solver_core-0.0.8-cp311-abi3-manylinux_2_34_aarch64.whl
Size 278.2 kB
Tags CPython 3.11 Linux glibc 2.34+ ARM64 abi3
SHA-256 checksum
How to use checksums
d8f7052824e19ba78340a747f9cbc7a8ce1025ff9538d8386ee86c0cf3d3d00f
BLAKE2b-256 checksum
How to use checksums
6b034e369ead66a3d0f572ebdc9d3a22109af18a2fae0ea630686c6c656bda6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.11.18

Release files / quip_solver_core-0.0.8-cp311-abi3-macosx_11_0_arm64.whl

Download URL quip_solver_core-0.0.8-cp311-abi3-macosx_11_0_arm64.whl
Size 254.3 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
712be289b94ac69e9b7a94e75643fe08e874352c455f2455071359f22838711d
BLAKE2b-256 checksum
How to use checksums
9e1c45b7aec145222300c9db20183fc08d5baaf9ee5436a1ca0cf428c85ade1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.11.18

Security for quip-solver-core 0.0.8

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