This release is a pre-release and may not be stable for production use.
quip-solver-core
This repository is the shared Quip solver contract. A solver binary accepts Ising problems and returns spin configurations with their energies.
The contract has two bindings. One is a Rust crate workspace. The other is a
Python wheel named quip-solver-core. The wheel carries the consensus primitives
and the generated gRPC stubs, not the session loop, so a Python solver
written today writes its own state machine. A Rust solver conforms today by
supplying a Sampler and calling run.
The full contract is in SPEC.md.
CHANGELOG.md lists the 0.0.2-rc1 changes.
MIGRATING.md covers the move from quip-miner-core.
Crates
| Crate | What it holds |
|---|---|
quip-solver-core |
The Sampler trait, Ising and CSR types, beta 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, nonce derivation |
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 ABI 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.2-rc1"
[dev-dependencies]
quip-solver-conformance = "0.0.2-rc1"
One dependency is enough. quip-solver-core re-exports quip_proto and
quip_protocol, so the consensus scorer is at
quip_solver_core::quip_protocol::scoring::energy_milli.
Python
pip install quip-solver-core
JavaScript and TypeScript
npm install @quip.network/quip-solver-core@rc
C and C++
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.
cargo build -p quip-solver-conformance --bin quip-solver-drive --release
./target/release/quip-solver-drive <solver-binary> unix:///tmp/quip-check.sock
Exit code 0 means conformant. The driver spawns any executable, so this works for a solver in any language.
Licence
Release files for quip-solver-core 0.0.2rc1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quip_solver_core-0.0.2rc1.tar.gz | 89.6 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quip_solver_core-0.0.2rc1-cp311-abi3-manylinux_2_34_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.34+ x86-64 | Details |
| quip_solver_core-0.0.2rc1-cp311-abi3-manylinux_2_34_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.34+ ARM64 | Details |
| quip_solver_core-0.0.2rc1-cp311-abi3-macosx_11_0_arm64.whl | CPython 3.11 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 891.7 kB
Release files / quip_solver_core-0.0.2rc1.tar.gz
| Download URL | quip_solver_core-0.0.2rc1.tar.gz |
|---|---|
| Size | 89.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3f052aca0293db1d1b2e57b458b71793f704b5b049dd3fe9d5b1dfd79cbd288
|
|
BLAKE2b-256 checksum How to use checksums |
b9fc5b4dacdc24c7337a39983df646a43992957ea733fc9c4d63b24d130d5ee6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / quip_solver_core-0.0.2rc1-cp311-abi3-manylinux_2_34_x86_64.whl
| Download URL | quip_solver_core-0.0.2rc1-cp311-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 277.3 kB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c5ed050ce47bd3e819bee4914a917fe89417a17fa4bf6e3ab1c4f6d7674a66af
|
|
BLAKE2b-256 checksum How to use checksums |
e5281e267fa3d8913f4fd3e28a97ced646007655e96690bb781b1dfcc5db9542
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / quip_solver_core-0.0.2rc1-cp311-abi3-manylinux_2_34_aarch64.whl
| Download URL | quip_solver_core-0.0.2rc1-cp311-abi3-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 274.2 kB |
| Tags | CPython 3.11 Linux glibc 2.34+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
de2fed90d3750f26efe5b3ccc9d07702050da8ee0477af9c0ba7b2f0da9fc60b
|
|
BLAKE2b-256 checksum How to use checksums |
334455652ce87879f3b362a61237acdddd2eaf32f4a962b2707027994983afc4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / quip_solver_core-0.0.2rc1-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | quip_solver_core-0.0.2rc1-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 250.6 kB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c0841aa561a47eee064dc89e196d11590e53ded63006c3b425d1437a1185d905
|
|
BLAKE2b-256 checksum How to use checksums |
6eb76d4f5f2425ebcb20f82543512a6d14bc2473a85549548ae3a1cd14b5891e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|