Skip to main content

pylongfellow

pylongfellow provides a Python interface to implementations of Longfellow zero-knowledge proofs over ISO 18013-5 mdoc credentials.

Two backends are supported:

The package is experimental and unstable.

CI Docs PyPI Python License

Installation

pip install pylongfellow

Wheels containing both backends are published for CPython 3.11–3.14 on Linux x86_64 (manylinux and musllinux). On any other platform pip falls back to the source distribution, which builds both backends locally — see the development page.

Usage

import cbor2

from pylongfellow import Pylongfellow, mdoc
from pylongfellow.backends.google_cpp import generate_circuit

longfellow = Pylongfellow(backend="google-cpp")

circuit = generate_circuit(7, 1)  # or Path(...).read_bytes()
longfellow.load_circuit(circuit, 7, 1)

claims = [mdoc.RequestedAttribute("org.iso.18013.5.1", "age_over_18", cbor2.dumps(True))]
issuer_public_key = mdoc.PublicKey(x, y)

proof = longfellow.prove(credential, issuer_public_key, transcript, claims, now)
longfellow.verify(issuer_public_key, transcript, claims, now, proof, doctype)  # raises on failure

Examples are in examples/.

Documentation

https://pylongfellow.readthedocs.io/en/stable/. The API reference is generated from the docstrings and carries the exact types of every function.

Upstream

Both backends are vendored as git submodules and built from source into each wheel:

The pins do not float: upstream ABIs and circuits can change between releases. A nightly canary runs the test suite against both upstream HEADs.

Development

git submodule update --init --recursive
uv sync
uv run pytest
uv run ruff check . && uv run ruff format --check .
uv run mypy

Build prerequisites and single-backend builds are on the development page.

Status

You should not rely on this code.

  • Wheels cover CPython 3.11–3.14 on Linux x86_64 only; other platforms build from source.
  • The API changes between minor versions.

License

pylongfellow is licensed Apache-2.0.

The vendored backends are licensed as follows:

  • google/longfellow-zk — Apache-2.0
  • abetterinternet/zk-cred-longfellow — MPL-2.0

pylongfellow is not affiliated with Google, ISRG, or the European Commission.

Metadata

Release files for pylongfellow 0.7.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 pylongfellow 0.7.0
File Size Uploaded Provenance Actions
pylongfellow-0.7.0.tar.gz 17.0 MB With provenance Details for pylongfellow-0.7.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pylongfellow 0.7.0
File Actions
pylongfellow-0.7.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for pylongfellow-0.7.0-cp314-cp314-musllinux_1_2_x86_64.whl
pylongfellow-0.7.0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for pylongfellow-0.7.0-cp314-cp314-manylinux_2_28_x86_64.whl
pylongfellow-0.7.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for pylongfellow-0.7.0-cp313-cp313-musllinux_1_2_x86_64.whl
pylongfellow-0.7.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for pylongfellow-0.7.0-cp313-cp313-manylinux_2_28_x86_64.whl
pylongfellow-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for pylongfellow-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl
pylongfellow-0.7.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for pylongfellow-0.7.0-cp312-cp312-manylinux_2_28_x86_64.whl
pylongfellow-0.7.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for pylongfellow-0.7.0-cp311-cp311-musllinux_1_2_x86_64.whl
pylongfellow-0.7.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details for pylongfellow-0.7.0-cp311-cp311-manylinux_2_28_x86_64.whl

Total release size: 45.4 MB

Release files / pylongfellow-0.7.0.tar.gz

Download URL pylongfellow-0.7.0.tar.gz
Size 17.0 MB
Tags Source
SHA-256 checksum
How to use checksums
82e9a2c5fc081a17fadafe95c854be4fd9940e5347f0708edfbd84e587041952
BLAKE2b-256 checksum
How to use checksums
4a65eeef1bc4302a5298da6ea5536a3c409979587c9d09bbf49967da906be3e3
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 Aug 30, 2026.

Transparency log

Release files / pylongfellow-0.7.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL pylongfellow-0.7.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
193f6f2ee6db628394fbfe1b20b19ed199671a0b8b2041c1c2003dcfb2be75b1
BLAKE2b-256 checksum
How to use checksums
1ceae3a6c36b43b0133d507d5c48b94b2a4ea14ec0dd2c90d59c8e22772b5eb2
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 Aug 30, 2026.

Transparency log

Release files / pylongfellow-0.7.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL pylongfellow-0.7.0-cp314-cp314-manylinux_2_28_x86_64.whl
Size 2.7 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
079942e0b425465ac1b7d47e954429725f6ca44d508813972cd9ba004c3554fe
BLAKE2b-256 checksum
How to use checksums
f21935aae467cace49dec5a9247969f0059ebc8193a57f88d0e8b077c7c00244
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 Aug 30, 2026.

Transparency log

Release files / pylongfellow-0.7.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL pylongfellow-0.7.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
414c75b121bf64c9d84edee30515d07ccdf5db4f6b39a6e2b6bbab14ae50717c
BLAKE2b-256 checksum
How to use checksums
5e8aa23f4827ec29f1b30a14ff531cacaaf67e0daab3bbef9f48372e51bc16b2
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 Aug 30, 2026.

Transparency log

Release files / pylongfellow-0.7.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL pylongfellow-0.7.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 2.7 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6d01ddd1406254ca009c57cfe2452f4104a2cf2990837664aea3442629537fa1
BLAKE2b-256 checksum
How to use checksums
32f1a0f101bccec958a356bad3669022a1665107e46a7ff7bb424274d2ec4699
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 Aug 30, 2026.

Transparency log

Release files / pylongfellow-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL pylongfellow-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b1fcb7f77f94cb637780c8b6cb973fec5bcd50edc4786b0c57bca0f468020a08
BLAKE2b-256 checksum
How to use checksums
e47523ba0b86dd02219fb3f749fc78a95073fbff7bff71e293fda1de96eaa595
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 Aug 30, 2026.

Transparency log

Release files / pylongfellow-0.7.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL pylongfellow-0.7.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 2.7 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
478ec11ef93886612538c7788ae6595acec2b29dfa0f5144a88108b3f85a6cfa
BLAKE2b-256 checksum
How to use checksums
d2ecf4503d89251910ebfd039f29909e3ece4e5975aadc013404e17dc3947c77
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 Aug 30, 2026.

Transparency log

Release files / pylongfellow-0.7.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL pylongfellow-0.7.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
09caea05a17dede431f68d325e46cde5d13182f21209175b703eae2d9f2f0504
BLAKE2b-256 checksum
How to use checksums
07dfd73815a68b3117820fef9af36425b8039690b9a0c2645d1bfe3ef5ed502b
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 Aug 30, 2026.

Transparency log

Release files / pylongfellow-0.7.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL pylongfellow-0.7.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 2.7 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b059133d6ae156d41354eda6ce0027024a994aab32b06e8df45222a6f48016bb
BLAKE2b-256 checksum
How to use checksums
98319381ee9d2463037d9402a55448e6bb499acfbed1f996ee214218f4ad8359
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 Aug 30, 2026.

Transparency log

Security for pylongfellow 0.7.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 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for pylongfellow-0.7.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 Aug 30, 2026.

Transparency log

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