Skip to main content

Quivers

A typed functional probabilistic programming language for PyTorch.

CI Docs PyPI Python 3.14+ License: MIT

Quickstart · Tutorials · Examples · Language reference · Python API


Quivers is a typed functional probabilistic programming language and compiler with a PyTorch runtime. It includes the QVR source language, a compiler to the Quivers Indexed Effect Core (QIEC), inference and diagnostics, a mixed-effects formula interface, eleven transpilers, and editor and notebook tooling. Its Python API also exposes categorical, deduction, and structural modeling primitives.

What Quivers includes

Area What it provides
QVR language and compiler Typed probabilistic programs with indexed families, lexical effect instances, row-polymorphic computations, and authored handlers. The language includes discrete marginalization and collection operators such as map, fold, and traverse.
Execution and inference A PyTorch runtime with automatic differentiation and more than forty distribution families. Inference includes SVI with automatic and flow-based guides, HMC, NUTS, and hybrid samplers.
Formulas and data A brms-style mixed-effects interface for pandas, Polars, and other Narwhals-compatible dataframes. The generated QVR can be saved and edited.
Diagnostics and analysis ArviZ export, ESS and R-hat, PSIS-LOO, posterior-predictive checks, LOO-PIT, static program summaries, source maps, and algebra-aware initialization advice.
Composition and structure A typed V-enriched categorical API and algebra-parametric semantics. QVR adds weighted chart deduction and declarations for structural signatures, encoders, decoders, and losses.
Transpilation Capability-checked output for BUGS, Church, Edward2, Gen, JAGS, NumPyro, PyMC, Pyro, Stan, Turing, and WebPPL. Unsupported target features are reported before code generation.
Developer tooling A command-line interface, interactive REPL, Jupyter kernel, language server, Pygments and tree-sitter grammars, and first-party extensions for VS Code, Cursor, and Zed.

Installation

Quivers requires Python 3.14 or later. Install the base package with:

python -m pip install quivers

Optional features are distributed as extras:

python -m pip install 'quivers[formulas,diagnostics,repl,lsp,targets]'

The user-facing extras are formulas, data, diagnostics, repl, lsp, and targets. The dev and docs extras are for work on Quivers itself. Some transpilation targets require their own runtime or compiler. The installation guide covers editor setup and target-specific dependencies.

Quick start

This QVR file defines a stochastic GRU language model:

object Token : FinSet 256
object Resp : FinSet 32
object Embedded : Real 64
object Hidden : Real 128

morphism tok_embed : Token -> Embedded [role=embed]
morphism gate_z, gate_r : Embedded * Hidden -> Hidden ~ LogitNormal
morphism lm_head : Hidden -> Token ~ Categorical

program gru_cell(x_t, h_prev) : Embedded * Hidden -> Hidden
    sample z <- gate_z(x_t, h_prev)
    sample r <- gate_r(x_t, h_prev)

    let reset_hidden = r * h_prev

    sample h_cand <- Normal(loc=reset_hidden, scale=0.5)

    let z_complement = 1.0 - z
    let h_new = z_complement * h_prev + z * h_cand
    return h_new

define backbone = tok_embed >> scan(gru_cell)

program gru_lm : Token -> Token
    sample h <- backbone

    observe next_token : Resp <- lm_head(h)
    return next_token

export gru_lm

Download the example and check it:

curl -LO https://raw.githubusercontent.com/FACTSlab/quivers/main/docs/examples/source/gru_lm.qvr
qvr check gru_lm.qvr

The QVR tutorial develops the language and inference workflow from a first model. The examples gallery covers hierarchical and state-space models, mixture models, neural language models, formal grammars, and structural autoencoders.

Typical workflows

Check, inspect, and run a QVR file from the command line:

qvr check model.qvr
qvr run model.qvr --list
qvr run model.qvr my_program

Check whether a model is supported by a target before emitting code:

qvr check --target pyro model.qvr
qvr transpile --to pyro model.qvr -o model.py
qvr transpile --to-all model.qvr --out-dir generated

Fit a mixed-effects model from a dataframe, then save the QVR produced by the formula compiler:

from quivers.formulas import fit

result = fit(
    "response ~ predictor + (1 + predictor | participant)",
    data=df,
    family="gaussian",
    method="nuts",
)
result.dump_qvr("model.qvr")

For language work, qvr repl opens the interactive environment, qvr-kernel install registers the Jupyter kernel, and qvr-lsp starts the language server. The repository contains extensions for VS Code and Cursor and Zed.

How the pieces fit together

flowchart LR
    Formula["Formulas + data"] --> QVR["QVR programs"]
    QVR --> Check["Parser + type/effect checker"]
    Check --> QIEC["Typed executable QIEC"]
    QIEC --> Ref["Reference execution"]
    QIEC --> Tools["Analysis + editor diagnostics"]
    QIEC --> Targets["11 target transpilers"]
    QVR --> Torch["PyTorch program"]
    Torch --> Infer["Inference + diagnostics"]
    QVR --> API["Categorical + structural Python APIs"]
    API --> Torch

Documentation

Resource Use it for
Getting started Installation and a first working model.
QVR tutorials Guided lessons from core syntax through indexed effects, handlers, inference, and release checks.
Python tutorials The typed categorical library and its composition rules.
Examples Complete models organized by statistical family and language feature.
Language reference QVR syntax, types, effects, execution, and tooling behavior.
Guides Inference, formulas and data, transpilation, the REPL, the LSP, and extension points.
Python API Public classes, functions, and modules.
Semantics Formal denotations for well-typed programs.
QIEC internals The stable core, serialization format, and runtime ABI.

Project status

Quivers is alpha software. Language and API changes are recorded in the changelog, and published releases are available from PyPI and GitHub Releases.

Support

Use GitHub Issues for bug reports, feature requests, and documentation problems. Include a minimal .qvr file, the command you ran, and the complete diagnostic when reporting compiler or runtime behavior.

Contributing

See CONTRIBUTING.md for the development setup, tests, contribution workflow, and commit conventions.

Acknowledgments

This project was developed by Aaron Steven White at the University of Rochester with support from the National Science Foundation (NSF-BCS-2237175 CAREER: Logical Form Induction, NSF-BCS-2040831 Computational Modeling of the Internal Structure of Events). It was architected and implemented with the assistance of Claude Code.

License

Quivers is released under the MIT License.

Metadata

Release files for quivers 0.24.0

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

Source distribution (sdist)

Source distribution for quivers 0.24.0
File Size Uploaded
quivers-0.24.0.tar.gz 9.8 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for quivers 0.24.0
File Interpreter ABI Platform
quivers-0.24.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
quivers-0.24.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details
quivers-0.24.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details

Total release size: 31.4 MB

Release files / quivers-0.24.0.tar.gz

Download URL quivers-0.24.0.tar.gz
Size 9.8 MB
Tags Source
SHA-256 checksum
How to use checksums
304fb64ae017ea524ef7e1af2a8ca3a01463cb14a35d952197fd5212b25175f8
BLAKE2b-256 checksum
How to use checksums
6cf5336191f6870560efb7c572f50160000621b555e78724fb18099efa4faa13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 6, 2026.

Transparency log

Release files / quivers-0.24.0-cp314-cp314-win_amd64.whl

Download URL quivers-0.24.0-cp314-cp314-win_amd64.whl
Size 7.8 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
80248ad5873c0f596d6dda005955f1cfc2ce5b6a6e53aaf7c32305ce26ea10d3
BLAKE2b-256 checksum
How to use checksums
7271fdbb074ab82e26840e429b5792291e4245f12cc6b929c1b3ee1a3443eaef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 6, 2026.

Transparency log

Release files / quivers-0.24.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL quivers-0.24.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 6.9 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
a9369dc6d81b1320fa4767b9b7c572d8ca751fc24181a6d17abc4a91e85474cf
BLAKE2b-256 checksum
How to use checksums
4e116ced5366a42f470d4711e0125826f4a1e6adb9975ed321d0a36f21f641d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 6, 2026.

Transparency log

Release files / quivers-0.24.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL quivers-0.24.0-cp314-cp314-macosx_11_0_arm64.whl
Size 6.9 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
67364491c3d39e22bd96947898e46959b627df1eb5e86ca5a93480a7619060ef
BLAKE2b-256 checksum
How to use checksums
b71898d7b231131cc09d1d9b1832303468d25ec2326cbe9edf51cc22faf57ad1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

0.25.2

4 release files

0.25.1

4 release files

This release

0.24.0 This release

4 release files

0.23.0

4 release files

0.22.0

4 release files

0.21.0

4 release files

0.20.1

4 release files

0.20.0

4 release files

0.19.0

4 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.5

2 release files

0.11.4

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

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