Skip to main content

Pure in-memory ZPAQ compression for Python (real pybind11 bindings, prebuilt wheels, no C++ toolchain needed to install).

Project description

zpaq

Pure in-memory ZPAQ compression for Python — up to 5.9× faster than the official zpaq CLI at the same ratio (with optional fragment-level deduplication), byte-exact CLI-interoperable in both directions, multi-threaded compress + decompress, prebuilt wheels for every modern Python on Windows / Linux / macOS, zero C++ toolchain or runtime dependencies to install.

import zpaq

blob = zpaq.compress(b"hello world " * 1_000, level=3)   # bytes -> bytes
assert zpaq.decompress(blob) == b"hello world " * 1_000

By default zpaq.compress(...) auto-scales across all CPU cores (threads=0). If you want the absolute best compression ratio (around 0.5-3 percentage points better) at the cost of throughput, pass threads=1 to keep the input as a single block:

blob = zpaq.compress(big_data, level=5, threads=1)   # max ratio, single-thread

For inputs with repeated content (logs, large text corpora, similar binaries, snapshots), pass dedup=True to get fragment-level deduplication — input is split into ~64 KB content-defined chunks, identical chunks are stored once. Matches what the official zpaq a CLI produces, so the output is fully zpaq x extractable:

blob = zpaq.compress(repetitive_data, level=5, dedup=True)   # JIDAC archive

Why this exists

Every other ZPAQ binding on PyPI shells out to the zpaq executable, which forces temp files and a subprocess fork. This package is both:

  • A real pybind11 binding around libzpaq (Matt Mahoney's underlying C++ library — the same one the official zpaq CLI is built on top of), wrapping abstract Reader/Writer adapters that read from and write to bytes objects with no filesystem detour.
  • Distributed as prebuilt wheels for Windows, Linux, and macOS (including Apple Silicon) across Python 3.8 through 3.13. Installing it never compiles anything.

On Windows, the wheel statically links the C and C++ runtimes so users don't need any "Visual C++ Redistributable" installed — if Python runs, zpaq works.

Performance

benchmark

Speedup vs the official zpaq.exe -m5 (Ryzen-class 12-core x86_64, level 5):

workload zpaq.exe -m5 best zpaq.compress speedup
40 KB text 0.16 s 0.11 s 1.5×
1 MB text 2.13 s 0.49 s (t=12) 4.3×
10 MB text 23.17 s 3.91 s (t=12) 5.9×
125 MB text 183.77 s 55.42 s (t=12) 3.3×

Full benchmark by thread count below. CLI is the official zpaq.exe v7.15 invoked with -m5 (the speeds shown include its -t0 default of two worker threads). mem(t=N) is zpaq.compress(data, level=5, threads=N). Times in seconds; ratio is bytes-reduced over original.

40 KB text:

algo compress decompress ratio %
zpaq.exe -m5 0.16 s 0.15 s 71.5 %
zpaq.compress(t=1) 0.11 s 0.11 s 73.4 %

1 MB text:

algo compress decompress ratio %
zpaq.exe -m5 2.13 s 2.16 s 80.0 %
zpaq.compress(t=1) 1.97 s 2.03 s 80.1 %
zpaq.compress(t=4) 0.73 s 2.27 s 79.3 %
zpaq.compress(t=12) 0.49 s 2.31 s 77.6 %

10 MB text:

algo compress decompress ratio %
zpaq.exe -m5 23.17 s 23.82 s 84.2 %
zpaq.compress(t=1) 21.07 s 22.23 s 84.2 %
zpaq.compress(t=4) 6.83 s 21.17 s 82.8 %
zpaq.compress(t=12) 3.91 s 21.37 s 81.2 %

125 MB text:

algo compress decompress ratio %
zpaq.exe -m5 183.77 s 187.99 s 86.7 %
zpaq.compress(t=4) 101.40 s 296.47 s 85.8 %
zpaq.compress(t=8) 66.03 s 297.45 s 85.0 %
zpaq.compress(t=12) 55.42 s 289.96 s 84.5 %

How the speedup is achieved. libzpaq's reference compiler emits an interpreter for the per-byte context-mixing predictor at compression levels 3-5. The official zpaq.exe on x86_64 ships with that interpreter replaced by a JIT that translates the predictor bytecode into native machine code at archive-open time. This package's x86_64 wheels enable the same JIT path plus:

  • multi-threaded block compression via threads=N (the official CLI tops out at 2 cores by default)
  • multi-threaded block decompression — we scan the archive for ZPAQ locator-tag block boundaries, dispatch each block to a worker, and concatenate. The official libzpaq API exposes only sequential decompress; doing it block-parallel makes our 125 MB decompress about 3× faster than zpaq.exe x.
  • skip-checksum-by-default (verify=False), since pure-data workflows rarely need the SHA-1 per block that zpaq.exe always computes
  • AVX2-enabled compile flags (auto-vectorization on x86_64; CPUs from 2013+ are covered, older fall back to the sdist build)
  • a libsais-backed suffix array constructor for level-3 BWT mode (Apache 2.0, several times faster than libzpaq's vendored libdivsufsort-lite)
  • a faster decompress path for archives produced by zpaq.compress (avoids the JIDAC-aware per-segment buffering)

Compress scales nearly linearly with thread count up to ~12 cores. Compression ratio drops slightly as threads increase (more block boundaries reduce per-block context size); the ratio for t=1 matches or beats the CLI on every workload.

Pass dedup=True to match zpaq.exe's ratio on inputs with repeated content — fragment-level dedup splits the input into ~64 KB content-defined chunks and stores each unique chunk once. The output is a JIDAC archive that both this package's decompress and the official zpaq x CLI extract byte-exactly. Default behavior remains the raw streaming format (faster, slightly worse ratio on heavily-repetitive inputs).

ARM / Apple Silicon wheels disable the x86-only JIT and AVX2 flags but still benefit from threading, libsais, and the fast decompress path.

API

zpaq.compress(
    data,                    # bytes-like
    level=5,                 # 0..5 (0=store, 5=strongest)
    threads=0,               # 0 (default) = auto-detect host CPU count, clamped
                             # by input size (64KB minimum chunk per worker).
                             # 1 = single-thread, deterministic, best ratio.
                             # N>1 = pin to exactly N workers.
    hints=False,             # If True, scan input for text/exe signatures and order-1
                             # redundancy, pass them to libzpaq via the method string.
                             # Slight overhead, helps ratio on some mixed/binary data.
    verify=False,            # If True, compute & embed SHA-1 per segment. zpaq.exe
                             # also writes these by default; turning them off makes
                             # both this package and zpaq.exe skip verification on
                             # extract, which is faster but won't catch corruption.
    method=None,             # Optional raw libzpaq method-string override (e.g. "x4,4,1"
                             # for custom predictor specs). Overrides level/hints when set.
    dedup=False,             # If True, emit a JIDAC-format archive with fragment-level
                             # deduplication. Input is content-defined-chunked into ~64KB
                             # fragments, identical fragments are stored once. Output is
                             # zpaq.exe-extractable. Improves ratio on repetitive data;
                             # currently single-threaded encode.
) -> bytes

zpaq.decompress(
    data,                    # bytes-like ZPAQ stream
    verify=False,            # If True, recompute SHA-1 of each segment and compare to
                             # the one stored in the archive. Raises zpaq.Error on
                             # mismatch. Default off for speed.
) -> bytes

zpaq.Error                   # Raised on libzpaq failures (corrupt stream, bad header, etc.)

Both compress and decompress release the GIL while libzpaq runs, so zpaq plays well with threaded workloads.

Compatibility with the zpaq CLI

zpaq.compress() emits the same on-disk format libzpaq itself writes, and zpaq.decompress() understands archives produced by the zpaq a journaling archiver (it identifies the JIDAC index/hash/info segments, discards them, and strips each data segment's trailing fragment-size footer so the recovered bytes match the original file exactly).

Tested on ten varied real files (1 KB to 25 MB, text/image/csv/jar/png/jpg/svg/exe/binary, compression levels 1-5):

Direction Result
zpaq.compresszpaq.decompress 10 / 10 byte-exact
zpaq.compress → official zpaq x CLI 10 / 10 byte-exact
official zpaq a CLI → zpaq.decompress 10 / 10 byte-exact
import zpaq

# Pipe to the official CLI
with open("out.zpaq", "wb") as f:
    f.write(zpaq.compress(my_bytes, level=5))
# ...later, from any machine with the zpaq executable installed:
#   $ zpaq x out.zpaq

# Read an archive that someone else produced with `zpaq a`
with open("their.zpaq", "rb") as f:
    file_bytes = zpaq.decompress(f.read())

When zpaq.decompress is fed a multi-file archive it returns the concatenated bytes of every file in the order the CLI stored them. A future release will expose a per-segment iterator API so individual files can be addressed by name.

Future work

A few performance levers are still on the table; pull requests welcome:

  • Profile-guided optimization (PGO). Adding /GENPROFILE + /USEPROFILE to the MSVC build (and equivalents on gcc/clang) typically gains another 5-15%. Skipped here because cibuildwheel doesn't expose a clean two-stage build hook yet.
  • Hand-written SIMD in the predictor. /arch:AVX2 is enabled so the compiler auto-vectorizes where it can. The actual hot loop at compression levels 3-5 is the JIT-emitted predictor, which currently emits one x86 instruction at a time; rewriting the JIT to emit AVX2 mul-add chains for the MIX/ISSE components would be a real gain.
  • Parallel JIDAC encode. dedup=True is currently single-threaded; splitting the fragment-build pass across cores would speed up large dedup compresses.
  • Per-segment archive API. zpaq.decompress currently returns the concatenated bytes of every segment in a multi-file zpaq a archive. A future iterator API would let callers address individual files by name.

License

This package is released under the same terms as the underlying libzpaq sources: public domain. See src/zpaq/vendor/COPYING.

The vendored libsais suffix array library is Apache 2.0 (Ilya Grebnov). See src/zpaq/vendor/LICENSE-libsais.


Not affiliated with Matt Mahoney. libzpaq was released into the public domain by its original author; this Python package wraps those sources and is an independent community project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zpaq-0.2.6.tar.gz (153.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

zpaq-0.2.6-cp313-cp313-win_amd64.whl (413.0 kB view details)

Uploaded CPython 3.13Windows x86-64

zpaq-0.2.6-cp313-cp313-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

zpaq-0.2.6-cp313-cp313-manylinux_2_34_x86_64.whl (401.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

zpaq-0.2.6-cp313-cp313-macosx_11_0_arm64.whl (340.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zpaq-0.2.6-cp313-cp313-macosx_10_13_x86_64.whl (357.4 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

zpaq-0.2.6-cp312-cp312-win_amd64.whl (412.9 kB view details)

Uploaded CPython 3.12Windows x86-64

zpaq-0.2.6-cp312-cp312-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

zpaq-0.2.6-cp312-cp312-manylinux_2_34_x86_64.whl (401.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

zpaq-0.2.6-cp312-cp312-macosx_11_0_arm64.whl (340.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zpaq-0.2.6-cp312-cp312-macosx_10_13_x86_64.whl (357.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

zpaq-0.2.6-cp311-cp311-win_amd64.whl (410.1 kB view details)

Uploaded CPython 3.11Windows x86-64

zpaq-0.2.6-cp311-cp311-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

zpaq-0.2.6-cp311-cp311-manylinux_2_34_x86_64.whl (398.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

zpaq-0.2.6-cp311-cp311-macosx_11_0_arm64.whl (338.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zpaq-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl (355.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zpaq-0.2.6-cp310-cp310-win_amd64.whl (410.4 kB view details)

Uploaded CPython 3.10Windows x86-64

zpaq-0.2.6-cp310-cp310-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

zpaq-0.2.6-cp310-cp310-manylinux_2_34_x86_64.whl (397.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

zpaq-0.2.6-cp310-cp310-macosx_11_0_arm64.whl (337.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zpaq-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl (354.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zpaq-0.2.6-cp39-cp39-win_amd64.whl (410.5 kB view details)

Uploaded CPython 3.9Windows x86-64

zpaq-0.2.6-cp39-cp39-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

zpaq-0.2.6-cp39-cp39-manylinux_2_34_x86_64.whl (397.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

zpaq-0.2.6-cp39-cp39-macosx_11_0_arm64.whl (337.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zpaq-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl (354.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file zpaq-0.2.6.tar.gz.

File metadata

  • Download URL: zpaq-0.2.6.tar.gz
  • Upload date:
  • Size: 153.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for zpaq-0.2.6.tar.gz
Algorithm Hash digest
SHA256 8149e09c57871f5ec9a0af1d0a1791fe4391c367f7263e131c2c78efc1e98c1d
MD5 fc2a9cfbcc121dc3846729ef0deddffc
BLAKE2b-256 067087c5188e65b6b0bcee8fce6e3b5f2f029b9dcd71c549714bd8fd84d02add

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 413.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 47fea20377d50fc4d620c969761bfbe4040f7f8e38ced7117fa025abc1226612
MD5 687b5562c25149aef1a6b75ecc554e46
BLAKE2b-256 073ffe27207e8319c8d83412c2115896a3c22d7fb5ee4d839361f2f710647a74

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 417a266ff9383e78d27693d33a7bef694cbc9593dc7857b2f772ff979f5198de
MD5 619217e76235bcc7ea90ef69423598ef
BLAKE2b-256 230b9cf7abb18c25280f770387dbc4f9b09789a2b32bf62aacd6d802eb586026

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ec1450587bd8137d71d3250421375d3c2c387a338223eb7613a182fc02cbc3e5
MD5 fad7bf8d7663221ebe4d24de4b1fa156
BLAKE2b-256 b62693b0ab7a3fde12bac2f33985d65a40d66cccfe41ca7595ba61af44a42cf2

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98dadf60811a45c059759d68714d1ecad22010d1e54f6b638b0fbc9be6c0141a
MD5 a166ff812c0ef9b586b334f95c5f8711
BLAKE2b-256 5d8f32cd4cc03c8dcab8094ee3e6600132fbbcdd7c59b9ca737264a45737a146

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f9be3637b221c7420c6fd4d7153cb91dd660db767b78e53264f083b861893a33
MD5 43068679fe57a15a2ae7ec3d36d8baa6
BLAKE2b-256 3bccbaa6fb0fad820881c3aa5655c8244c782983edc2a796dda9ca6812cb74a1

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 412.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6de6828f1dedf2aeb19a334199a5531d1f78b441223e644bab81478f3c00d6d6
MD5 14040fac2ddf7bda9335fa54220b1ae2
BLAKE2b-256 17710ff8c813ec223ec3a32e8808181a7acbd429c20645685fe234370a56a4ee

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6ed51ff7aba1dd312753969328e046c7672c18b2146ef159f02248e9c70218ec
MD5 86cff13a749e028340b6d467a83fbf32
BLAKE2b-256 3513032dae7061b284533b6eff7c2813553ff9b6df8f0ded8e1aa3de881c168b

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f1034dd5e54f5dad667d844a37ac764bdba58c90e383cd774f0bdb04f88764a0
MD5 c1baf93750cc6a8154dd7ea22b227809
BLAKE2b-256 8ec6d8ad9f775c472539c37783369139942a593787733d919c3c10549a7b66e7

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c0e57c842b8d0d1191091f1a33b3a59a94f38194676d3fa7364fe3d73d860737
MD5 96924fcb31610aac09bf85847cd05dae
BLAKE2b-256 0a42fd9a487a18b69ccdb406f34fafb4c35290e0bd4640d310a0c33d6d4e2f78

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 494d0e879480fc21d661653f7f0c4bdd4a7641c3d31c2ef29e515c01ef994376
MD5 6400339c3a3244561fcdb7918b8690d0
BLAKE2b-256 d6611a7d25d5061fdc6890d677b9a1465dbf07a28f9ce5b45b293b00c2444794

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 410.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for zpaq-0.2.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e48661698b54c5826166eb553a9da1f4dd6a5cfa22fc04bdb2fdff92e4ef33dd
MD5 6790d73ff051043c39506105c9bd615e
BLAKE2b-256 682c6ec35d641f4e398dc0a1cd291ee8dec4a8f40085fe3b38b0ccc302dd42df

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 41d7e7bfd1e71d659b2e1dc898422ebeef90dd99e10b653af90324360d765742
MD5 274f969ad0d5a03e93feb763b8caeabc
BLAKE2b-256 0414936a7ab8f3e44217d6ed15af96348b3d3842363c9cfde17409bf8cba37a0

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3bf3a8fe3f8b24a43ceef8f6f6b8e151c3753e842d81b947a00b25563fa3267a
MD5 9cb658232c20fae6c3db70db5405a3c6
BLAKE2b-256 d51495dabe9c1824eb90dbe9efe88e9ba1c4ca95d7e6a909785e719ec50c1671

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7b90782e97c3f790ef1ca9ea3f4bbb200860998b9a5392fdd8907e340af1326
MD5 cb15264e4955392bb6fc488cef6889f3
BLAKE2b-256 4aeb10b6a7ad219433b2076ee793538178ba1c37800b1353f1fba753ec720cd7

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f765c30ce05b1b0a48fe08b5ddd2490ce169479bd06b5c3b1de6518a7589848c
MD5 1a8fcdf0dcd8707a5b54a77a241237de
BLAKE2b-256 f1f71ee368edef406a926d4678103c97572df69677b40588e3afb29a8f173462

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 410.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 02694ec419dd3ba33cbf6ea9b661ea146449e5570949e83d172e00c122d14e6e
MD5 7312e179a842692f700c0fd05e03a65b
BLAKE2b-256 d680d9a3578dc604525608a45b7a29484c70d56871aead35e5f1cfb8aeabd6fd

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 07e2f6e4088a2489d455b0c6dd3c56d3dfa0443ef6d1c28684f5c9d612fa46bb
MD5 a8f4fd3b50a2321ff9889e2048203cb0
BLAKE2b-256 661c39d11a96d133b4f1784533893cf38582110f4257a9b67e78efc3ff390046

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2528c431e57ffbdf496415de26d875c2ea2df77ab6872e611719721a05ec6d01
MD5 f36c8e71f9e24fff80a05b0f920369ca
BLAKE2b-256 d364be9adfbeb921ab956a8d52abd30e656758ad2e04644f0a2567129ea1bfb5

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 009d54646c33ebee25d93f203292ecd83adb14cc52f127f8d130e3f1999bb02e
MD5 8c66e0d0241630d2487457524c1b5a84
BLAKE2b-256 77f987ee5a4c688a8fff54ab426c25453166628bfa1efaccbbf130ad44184ed2

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zpaq-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cb3bc6d1ac82c85b0901803fcd200214d60692ea4f5c6acfc042e2d045654722
MD5 42163143fe25f3fcfa432a2ef966f91a
BLAKE2b-256 004838bd881e640bfb23cca42b533866b41123e1f5afee37d84fdf117ddd4073

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 410.5 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0fafb8c38a94d0dfc743f1945837c404113e24bc83e99c59f79ca7eda618e988
MD5 7de2b12767c0c8f322355f4909b07afb
BLAKE2b-256 660b7cfee206e31429e72a19482bb30e4f57e9d6475b6e2ab3d349c85a5a1633

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp39-cp39-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.6-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f7839b0794e85fcbd154e10dbd2fb55ef1c1abcc455acde8c20eecdc777545ab
MD5 1cb423798fce8bbad82f1c33cfead68e
BLAKE2b-256 029eb868a096e2ef443a6c31c29376ea1e1f8cd8420c60a923451b8478f3e0fe

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp39-cp39-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 397.3 kB
  • Tags: CPython 3.9, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.6-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 26b88fc69ed889400e4d7d9bedfaa47ab138131173c88834396265fe918a765d
MD5 d1ca0cfb117dc4988c780ad0da294501
BLAKE2b-256 f516e50c8002a495a8125a684415ec98f7fbfea9a72599e9003c1fc1cf26028c

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 337.3 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e976698256c9ac8eb33f9c08360ad57b3d433a4166436a625781c2a1c91602c
MD5 a7ff11a28f0c5c25ec399cf857f6a870
BLAKE2b-256 807681271734f3867368748c407cf60b614f9c1fc4e3a0359a854df51eb7b885

See more details on using hashes here.

File details

Details for the file zpaq-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: zpaq-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 354.6 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ab53bb84af3454c9ac3e97768094b94df912def6cb56383f7743dffa0595d026
MD5 4c2ba595aafe14980832e2bdff9e0e76
BLAKE2b-256 b968c3f5f120a4ad778e2dc27de909c41719333a9b71096bdba0662566c1cbfe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page