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

pypi Downloads github stars

Pure in-memory ZPAQ compression for Python. I made this because every other zpaq package on PyPI is just a wrapper around the zpaq executable, they shell out to the CLI as a subprocess, which means temp files for every operation, fork overhead, and the user needing zpaq.exe on their PATH in the first place. None of them are actual bindings. I wanted real bytes->bytes zpaq from Python that just works.

import zpaq

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

It also ended up alot faster than the official zpaq.exe itself, up to 6.6× faster on decompress and 6.3× faster on compress at 10 MB, with the same compression ratio. Multi-threaded both directions, JIT-compiled predictor on x86_64, libsais for the suffix-array pass, AVX2 auto-vec compile flag. Default threads=0 auto-scales across all CPU cores. Pass threads=1 if you want the absolute best ratio:

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

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

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

Prebuilt wheels for Windows / Linux / macOS (including Apple Silicon) across Python 3.9 through 3.13. Installing it never compiles anything. On Windows the wheel statically links the C and C++ runtimes so there's no "Visual C++ Redistributable" requirement, if Python runs, zpaq works.

Performance

benchmark

Benchmarks vs the official zpaq.exe -m5 (Ryzen-class 12-core x86_64, level 5). Both compress and decompress are parallel block-wise; mem wins both directions at every size from ~1 MB up:

workload CLI comp best mem comp CLI decomp best mem decomp
40 KB text 0.14 s 0.13 s (1.1×) 0.14 s 0.12 s (1.2×)
1 MB text 2.28 s 0.58 s (3.9×) 2.23 s 0.58 s (3.8×)
10 MB text 24.1 s 3.83 s (6.3×) 25.1 s 3.83 s (6.6×)
100 MB text 252.5 s 74.1 s (3.4×) 250.7 s 73.2 s (3.4×)

Full breakdown by thread count below. CLI is the official zpaq.exe v7.15 invoked with -m5 (its speeds already include the -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.14 s 0.14 s 71.5 %
zpaq.compress(t=1) 0.13 s 0.13 s 73.5 %
zpaq.compress(t=0) 0.13 s 0.12 s 73.5 %

1 MB text:

algo compress decompress ratio %
zpaq.exe -m5 2.28 s 2.23 s 80.0 %
zpaq.compress(t=1) 2.08 s 2.12 s 80.1 %
zpaq.compress(t=4) 0.70 s 0.75 s 79.3 %
zpaq.compress(t=12) 0.58 s 0.58 s 77.6 %

10 MB text:

algo compress decompress ratio %
zpaq.exe -m5 24.14 s 25.13 s 84.2 %
zpaq.compress(t=1) 20.92 s 21.50 s 84.2 %
zpaq.compress(t=4) 6.72 s 6.92 s 82.8 %
zpaq.compress(t=12) 3.83 s 3.83 s 81.2 %

100 MB text:

algo compress decompress ratio %
zpaq.exe -m5 252.5 s 250.7 s 86.7 %
zpaq.compress(t=1) 324.2 s 85.9 s 85.0 %
zpaq.compress(t=0) (12 cores) 74.1 s 73.2 s 84.5 %
zpaq.compress(dedup=True) 325.4 s 120 s 85.06 %

Why this is faster than the official CLI

libzpaq's reference compiler ships an interpreter for the per-byte context-mixing predictor used 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, that's where most of its speed comes from. This package's x86_64 wheels enable that same JIT path, plus a handful of additions the CLI doesn't have:

  • multi-threaded block compression via threads=N (the official CLI tops out at two cores by default)
  • multi-threaded block decompression, I scan the archive for ZPAQ locator-tag block boundaries up front, dispatch each block to a worker, and concatenate. libzpaq's decompress API is sequential, so this layer sits above it.
  • skip-checksum-by-default (verify=False); the SHA-1 per block that zpaq.exe always computes isn't free, and most "compress these bytes please" workflows don't need it
  • AVX2-enabled compile flags so the optimizer auto-vectorizes where it can (x86_64 wheels assume AVX2; CPUs from 2013+ are covered, anything older falls back to the sdist build)
  • libsais (Apache 2.0) for level-3 BWT suffix-array construction instead of the libdivsufsort-lite that libzpaq ships internally
  • a faster decompress path for archives produced by zpaq.compress that skips 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 = less context per block); the ratio at t=1 matches or beats the CLI on every workload. For inputs with actual repetition dedup=True closes the remaining gap.

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 + order-1
                             # redundancy, pass them to libzpaq via the method string.
                             # Slight overhead, can help ratio on 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 us and zpaq.exe skip verification on extract.
    method=None,             # Optional raw libzpaq method-string override (e.g.
                             # "x4,4,1"). Overrides level/hints when set.
    dedup=False,             # If True, emit a JIDAC-format archive with fragment
                             # dedup. Output is `zpaq x`-extractable. Currently
                             # single-threaded encode; matches CLI ratio on repetitive
                             # inputs.
) -> bytes

zpaq.decompress(
    data,                    # bytes-like ZPAQ stream
    verify=False,            # If True, recompute SHA-1 of each segment and compare
                             # to the one in the archive. Raises zpaq.Error on
                             # mismatch.
    threads=0,               # 0 (default) = auto-detect, clamped by block count.
                             # 1 = single-thread.
) -> bytes

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

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

CLI interoperability

zpaq.compress() emits the same on-disk format libzpaq itself writes, and zpaq.decompress() understands archives produced by zpaq a (filters out the JIDAC index/hash/info segments, follows the file's fragment-ID list, etc.). Tested on ten varied real files (1 KB to 25 MB, text/image/csv/jar/png/jpg/svg/exe/binary, levels 1-5):

Direction Result
zpaq.compresszpaq.decompress 10 / 10 byte-exact
zpaq.compresszpaq x (official CLI) 10 / 10 byte-exact
zpaq a (official 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 someone else produced with `zpaq a`
with open("their.zpaq", "rb") as f:
    file_bytes = zpaq.decompress(f.read())

For multi-file zpaq a archives, zpaq.decompress currently returns the concatenated bytes of every file in storage order. A per-segment iterator API for addressing files by name is on the v0.3 list.

Future work

Plenty of levers I haven't pulled yet, PRs welcome:

  • PGO (profile-guided optimization). Adding /GENPROFILE + /USEPROFILE to the MSVC build (and the gcc/clang equivalent) usually adds another 5-15%. Skipped here because cibuildwheel doesn't expose a clean two-stage build hook yet.
  • Hand-written SIMD in the predictor. AVX2 is on at the compile flag level so the compiler auto-vectorizes where it can. The actual hot loop is the JIT-emitted predictor, which currently emits one x86 instruction at a time; rewriting the JIT codegen 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. As mentioned above, let callers address individual files inside multi-file zpaq a archives by name.

License

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.3.1.tar.gz (154.4 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.3.1-cp313-cp313-win_amd64.whl (415.5 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

zpaq-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl (404.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

zpaq-0.3.1-cp313-cp313-macosx_11_0_arm64.whl (342.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zpaq-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl (360.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

zpaq-0.3.1-cp312-cp312-win_amd64.whl (415.4 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

zpaq-0.3.1-cp312-cp312-manylinux_2_34_x86_64.whl (403.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

zpaq-0.3.1-cp312-cp312-macosx_11_0_arm64.whl (342.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zpaq-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl (360.2 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

zpaq-0.3.1-cp311-cp311-win_amd64.whl (412.8 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

zpaq-0.3.1-cp311-cp311-manylinux_2_34_x86_64.whl (401.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

zpaq-0.3.1-cp311-cp311-macosx_11_0_arm64.whl (340.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zpaq-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl (357.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zpaq-0.3.1-cp310-cp310-win_amd64.whl (413.0 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

zpaq-0.3.1-cp310-cp310-manylinux_2_34_x86_64.whl (399.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

zpaq-0.3.1-cp310-cp310-macosx_11_0_arm64.whl (339.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zpaq-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl (356.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zpaq-0.3.1-cp39-cp39-win_amd64.whl (413.1 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

zpaq-0.3.1-cp39-cp39-manylinux_2_34_x86_64.whl (400.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

zpaq-0.3.1-cp39-cp39-macosx_11_0_arm64.whl (339.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zpaq-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl (356.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for zpaq-0.3.1.tar.gz
Algorithm Hash digest
SHA256 12b6c8923b3305a8ea6d57e0402c879995e993b5f15a34033641e7025e41c46e
MD5 ca44426c0ede97751164e3b5a1f41086
BLAKE2b-256 d7c10b8b06d0ab4077ad5629b2eace3fc7a7f2ddc322ed1b4c9d4bbe487c5e89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 415.5 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.3.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f03075b11472a0ff54405a29d873d0d63b06a61a867d208a749d1ffceb3c3fe0
MD5 6b139ceeeca5174207130b7a11ed70dd
BLAKE2b-256 5be96264b1e25362c86fd3f1f93dbebdab86efbeef045d605f055eb1dd649015

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4aa7b340894eed722fab29150a5d3687fdbbdd92d48b4047c40fda655b52c58d
MD5 ce4db65c720c7e141f203ba7bdb51a67
BLAKE2b-256 ce19bcfe059977c29fe91f8236363001b57167775c3cb71dcb9a71b070fe64ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d92fd27d6ec553ea5bfc292575567a4598a160776341c01afe59c7f29551d80d
MD5 3699ae988bccf114639a7e4bf3888e30
BLAKE2b-256 9cb914e79d81321386d984557ba7a8973e23e529837e29c90de8a2360da2632c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e7a5cb4b134a9398edc6a4d7e4aed699228123e9aacbcf3834a246b6a0aca599
MD5 7f42ec74f618a37afa53e8e255d91071
BLAKE2b-256 95c3e9eeeebac96c87b6b29f350f4ab13ae47c0b27ecd46de0fe3bc6ee89c26b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b9c494f6bb1aa73e34504e0fb2bb3bab688f2e1e4736cce843abc5bf8f78fde0
MD5 f453127abdbdb1192bd0964bfd170314
BLAKE2b-256 c5b555770cfd2a30217cfbe77811f39665579dc990dde7814ce386a7331bd9ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 415.4 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.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 151ac0dd9c4d4fcd981dc04a852ff575712d97a8bbec165964de04836a0ba7e3
MD5 7fb5fdaf007a8eda0bf0635c2a8269ee
BLAKE2b-256 be052a88afcf45ec5b6b627c1f9bdb52c26436f341b552bd16ac298856427083

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 27a429c02cb3e57e233df2c6674cd1629ce5e6937a93f5ed12ce453212841a1d
MD5 6bfe3e7a199a073f4b3b5a4884b28ebb
BLAKE2b-256 bea0853d87f6776f87e29250aefe717ddfff4013081b9e815008c125c5180e0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a717d19779993c6d3d25b0cdfbcd760a812fc42b21204a6584fc9fdfe54b01a5
MD5 0b547b82530704fd9a4b209daef33f73
BLAKE2b-256 115a33e1e86e4db7de178b2a4d05b683118072f3868eacd1d5150168c55f8843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b66eea8800539afde95503221db35001e88b788d202e54b1810f6e0ecaf4d21
MD5 87a3ed06141efe941113758e2daf47e0
BLAKE2b-256 ee8231b8abc0f75452c715555c7c38686d62031a8a11bfa37c08fce987f6b2cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 adc894ae61035fa88baef228a53e7164f9ba6c57871f0d10753688ff63bbde49
MD5 a3d106cbac18d18ec87dd80b84e66116
BLAKE2b-256 ef11d3890bfb43dacbbb8344cbae0f490ffd98aa74cce0a3ffb2cd42c3c4a8d6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 412.8 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.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6d5426d0a3b3752ae594e82d00909f9aab764b483810d87023ebbe2aa5871d8d
MD5 999c7f527fe663b378199409ff6d64cd
BLAKE2b-256 f0c754b2c417a540f70f44e5334764a5b9b95da20b5bb11e6f560dca7ca68e42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 df8e48f3e278f37f3e4ac63e709796b5b96f555efaa6979c16b2b21111d64c3b
MD5 de2473bd781e0374934e52e1a5530ea4
BLAKE2b-256 85eed73155eb619bc2dcacb8dd3355a70c5bf2a49a1259ff299978907e171ff7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3690824f3af0d6113603cde8d7813043e8a4228ffa8839122aee058933b153e1
MD5 7b95eabea2ed56c9572ee966ffcf518a
BLAKE2b-256 36c399c687f31bc7e7be1ab3c88bc7e70c5b58e0dc2174a959b0638c3e52b8f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24f222574de5938e5d09c39dd654a46f0b7d6020460e14ff89ee0abc9bde847f
MD5 dc310e7fbd4e9f44832a48f867d48c30
BLAKE2b-256 ec63928321be451266c3b47dc35ede4d84dc34460a6929e5056d46367ad194c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 18e3f6127cb47590ca53d09354041174292e87ead83abbe05f37a84c814c29d5
MD5 a00d5c7349cae5aa8353644c4ed4b5cd
BLAKE2b-256 31fc6dae38565e317483d8152efb8b47a818e18b8451e5662f45fd721a290eed

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 413.0 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.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9a8d2cab48d9182310ccc2be5e52da73bb6c8c6940dc217f3ba14bb90a049bde
MD5 05be04b777b3378fb70904731926346c
BLAKE2b-256 e683bdf80289ee80c1beec169acb7009abddea6abdce379cb4f2d0b34421060f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5c500eece007c5a10615f33af6754fe67c1f8141d736c3f4eb08e5bfbaf1b7f5
MD5 64dcd9898d66ef2131758a03d51e3a30
BLAKE2b-256 d9e3d2f7b99ece9a3719e034616a6b972a41a831f07c932eb73591ff1043e20b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4d7e4138b2b5f8a32598d25e1047efb6f67e4f3d24d2007cf2b972139a742ed0
MD5 0cf08fde6ca7631c9058e9b66ace0bf5
BLAKE2b-256 c98bff1e44b856716333607fe3e5f80d600f004712747c278e093ee9ecaf180b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b28c5284ec3bce79b4cf319d7930bdc5fcbec991a231b6b09ee7030a26afd345
MD5 b10b772b3cf3a3efdcdc24c7f3b6f7e3
BLAKE2b-256 a3b33ac51c295dc290581991e7c7ef31c80cbbab0791c89837e5e55ee36fef30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8cb61d03086a519d879fc292ad6eaa1b1ba54242139b9dbfdbcf58c6992b9711
MD5 882fb519ce35f2a534201cfdc922423b
BLAKE2b-256 272fbcd16e8c0320a490b449068e562866c9edc78667848f164f6e2d06aad1bb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 413.1 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.3.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0233e5e0fde1837009093e0386bcd84e17e5bd613cb568b07712af8feaabe0c1
MD5 0162e1e568cefa44501366d0acac0013
BLAKE2b-256 30936ed3a0d65a98ad5a37dced3754b24f91c915fe75f83f38dfd6490edcfdaa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-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.3.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 384ba63f572bd166ab3e4ad1ac10b0180f6cc37eae0791c585fdbe91e8ca7a7a
MD5 c70a84789933f5cf364f3daa64212271
BLAKE2b-256 30a84d667a2882f8d579925480c7e2fb73b8315591c625866132961f6b3ebbb1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-cp39-cp39-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 400.1 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.3.1-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 35e112b448032d64507f8890ff7b1f3284aecc60fbfff8ca635b8bb2c1dadcd7
MD5 a9913312d5fcb50ad83b4e805c2c7cb3
BLAKE2b-256 6ee1ed913e1132d8fff75d9ef23aefd0c1e2da93bae66308765b0f1fdc9cd7ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 339.4 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.3.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04555a92803a14762ca1f791d93fc06d2b75e9d2e1b7de2a13892eede7965944
MD5 a4db83eee201b4de13ffc546ceb53bb4
BLAKE2b-256 8f44fd12e8753ae4e0d4f8dc224079ae62b3a5ce331411da1a8ee66946c72ce9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 356.8 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.3.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0e276a960f7549b3fb4adba0ee061dc4167779c16d8c8b7a0e49743342a84ede
MD5 14deaf78332ec6b1a84ba9e551d6778a
BLAKE2b-256 9232f9db76e080aa56f95a9392b67533e1329000c8dee278c01d768943a79c83

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