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). The mem binding wins both compress and decompress at every size, and dedup=True matches or beats the CLI on compression ratio at every scale:

workload CLI comp best mem comp CLI decomp best mem decomp mem dedup ratio vs CLI
1 MB text 2.25 s 0.56 s (4.0×) 2.23 s 0.64 s (3.5×) +0.013 pp
10 MB text 24.67 s 4.36 s (5.7×) 24.74 s 4.29 s (5.8×) +0.001 pp
100 MB text 184.36 s 55.73 s (3.3×) 185.32 s 56.02 s (3.3×) +0.078 pp (dedup) / tie (t=1)

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.

1 MB text:

algo compress decompress ratio %
zpaq.exe -m5 2.25 s 2.23 s 79.963 %
zpaq.compress(t=1) 2.15 s 2.21 s 80.073 %
zpaq.compress(dedup=True) 2.18 s 2.16 s 79.976 %
zpaq.compress(t=0) (12 cores) 0.56 s 0.64 s 77.547 %

10 MB text:

algo compress decompress ratio %
zpaq.exe -m5 24.67 s 24.74 s 84.161 %
zpaq.compress(t=1) 24.76 s 25.15 s 84.206 %
zpaq.compress(dedup=True) 24.24 s 26.67 s 84.162 %
zpaq.compress(t=0) (12 cores) 4.36 s 4.29 s 81.213 %

100 MB text:

algo compress decompress ratio %
zpaq.exe -m5 184.36 s 185.32 s 86.74 %
zpaq.compress(t=1) 279.35 s 173.33 s 86.72 %
zpaq.compress(dedup=True) 180.19 s 184.52 s 86.666 %
zpaq.compress(t=0) (12 cores) 55.73 s 56.02 s 84.56 %

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.
  • AVX2 in the JIT predictor. AVX2 is on at the C++ compile-flag level. The JIT-emitted predictor already uses SSE2 SIMD (pmaddwd / paddd for the MIX dot-product, lines 4126-4170 in vendored libzpaq.cpp). Upgrading the JIT codegen to AVX2 256-bit ymm registers would handle 16 mixer inputs per iteration instead of 8, but real gain depends heavily on the per-method MIX m parameter, and the work is byte-level instruction re-encoding which is fragile. Skipped for now.
  • Smaller-chunk dedup. The current 64KB content-defined chunk size matches the official CLI for full interop, but smaller chunks (16-32KB) would find more duplicates on similar-but-not-identical files (e.g. log streams, snapshot diffs) at the cost of more index overhead.
  • 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.5.tar.gz (156.5 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.5-cp313-cp313-win_amd64.whl (420.8 kB view details)

Uploaded CPython 3.13Windows x86-64

zpaq-0.3.5-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.5-cp313-cp313-manylinux_2_34_x86_64.whl (410.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

zpaq-0.3.5-cp313-cp313-macosx_11_0_arm64.whl (347.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zpaq-0.3.5-cp313-cp313-macosx_10_13_x86_64.whl (366.1 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

zpaq-0.3.5-cp312-cp312-win_amd64.whl (420.8 kB view details)

Uploaded CPython 3.12Windows x86-64

zpaq-0.3.5-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.5-cp312-cp312-manylinux_2_34_x86_64.whl (410.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

zpaq-0.3.5-cp312-cp312-macosx_11_0_arm64.whl (347.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zpaq-0.3.5-cp312-cp312-macosx_10_13_x86_64.whl (366.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

zpaq-0.3.5-cp311-cp311-win_amd64.whl (417.9 kB view details)

Uploaded CPython 3.11Windows x86-64

zpaq-0.3.5-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.5-cp311-cp311-manylinux_2_34_x86_64.whl (407.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

zpaq-0.3.5-cp311-cp311-macosx_11_0_arm64.whl (345.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zpaq-0.3.5-cp311-cp311-macosx_10_9_x86_64.whl (363.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zpaq-0.3.5-cp310-cp310-win_amd64.whl (418.1 kB view details)

Uploaded CPython 3.10Windows x86-64

zpaq-0.3.5-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.5-cp310-cp310-manylinux_2_34_x86_64.whl (406.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

zpaq-0.3.5-cp310-cp310-macosx_11_0_arm64.whl (344.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zpaq-0.3.5-cp310-cp310-macosx_10_9_x86_64.whl (361.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zpaq-0.3.5-cp39-cp39-win_amd64.whl (418.2 kB view details)

Uploaded CPython 3.9Windows x86-64

zpaq-0.3.5-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.5-cp39-cp39-manylinux_2_34_x86_64.whl (406.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

zpaq-0.3.5-cp39-cp39-macosx_11_0_arm64.whl (344.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zpaq-0.3.5-cp39-cp39-macosx_10_9_x86_64.whl (361.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: zpaq-0.3.5.tar.gz
  • Upload date:
  • Size: 156.5 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.5.tar.gz
Algorithm Hash digest
SHA256 7bb366160b5d79f392061c7eddfa0069e814734c960247508b0191684bc2fb1b
MD5 f1845b9aeb6a28de53c75bc106fc0ae2
BLAKE2b-256 523478dc06c145b109b23918a9d1627c2983c3d2b3f95478529c354da0cd67d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 420.8 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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 be04e2a4060511e9016ffc1c0d812be3f61b059ea361bb35b9af2734c6fe823f
MD5 c034e8f47d2ecd0625baf2fa5e25c61c
BLAKE2b-256 36be114670b637a0b715eaf08c512700bb5994719e1aa76117e2f7765c035bff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 492dcf80fa76e7145736b19788ae3d07a5636cb8465466fcc24652e4c1dabc48
MD5 8398dc7f7d53d42b25ba5551c832b11d
BLAKE2b-256 f29f3d09d22fcb5c989c6e66be259cbdd08c247e217e2837bfa0ff172055e140

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 388caca27a3daa8b8730c0c6f5da588f5a08fff57df4095d622ad26ba1ac1ef1
MD5 a6fbd224ad94ae768aa35b5d503fb1ac
BLAKE2b-256 8176ae7e8b20644c167444448864f9ecf3fd80617e81317a5a69ad97d589e2f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d69293a5140a26977e38a08c4f6f8c507d6aa4b3960f23b1ce8049ac678a16d
MD5 6970c9ca8f75f685f2a965b3e6dedc1f
BLAKE2b-256 de2fe767fae4680be312300d180721dbda2a6331f7538b1793851b1a89a1061d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 075dca93631a089dde276a672e050d6291f21de96731749ebf906f5e7b46a99a
MD5 f6eec3806ab8b9f380d3cc1ff2e33953
BLAKE2b-256 16628cabd4e8b54787bd8c7db68a4f305ad3602ddca6e5d296ee6ad6aa6e65bb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 420.8 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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 602d800a18d810d34aaebb24fe2b7f75145e7ac7ed61184ca48c6a8174b38dbb
MD5 a2098da0805a9a49ab0ee977fa7f80b2
BLAKE2b-256 b7ee33b52c682cfe97c8ae3970c6e694af01b53bd5a55b4ef68c0c034ac8531f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 acd58d494d2d41e2a91ea177979bd28ea023edacb5cd7839e3074f6c5992f099
MD5 512c7f2e1f732a405b2c552ba29c96a5
BLAKE2b-256 7e7a8a1a9e783bcc5e3e69848dd40e33cbf59e91bf96129b933205385865c231

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 14bea2a77d264508d828e90fcdc910a69715a15651b99097d33ef1376ed66fc4
MD5 c18d27c5043bd75c2294805f55748a49
BLAKE2b-256 85d082d786bec79e722cf9625c5c928b0a86a05b890f87d099f7d63fa1e66872

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fde953a46133e8d99b6f4c25c357b203fde453e3e792114187548915dad914ff
MD5 b93409d211e9b0377c148283c6636210
BLAKE2b-256 4195881722cca64ec613ddecc238299d428a32b6fb63afe7fa3c4b827bc0110f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d8406f2c5a2d90469becd75aa6349a176b4d26c86653bbc03793de50e807d4d3
MD5 40c339d15c37f18e3a19eec5c2211aaf
BLAKE2b-256 1e746c00be97c9fa657a5fbda1afdcaccbd7073827956ac6595d914960c1ddb9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 417.9 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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 06921e2203514f52ed87a8edbc959024036bd015e447c1e5a48b51b89239266d
MD5 2be1ab22926b3f0e26836e46c0679a1b
BLAKE2b-256 7f26526bcf74e599f0ab3d08c4526263649704b002f0fa3dbfefcb65ab2d0cb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 805eee46ea9d04f23c10d36e4b5d309992320bbbf3b196a54756d6f29c8f9082
MD5 9f94eeb1f54ae1e21cb1d8c67fb10e04
BLAKE2b-256 74f1c6b533a0812f5cd7b6bb6c1ff3280480770fd8b3c8f37f8ab9cf5c6a9033

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 af7cee5fa432636fdce32a3c013a65cc701eb7a0c7debd82d2db575c27ca98f6
MD5 e5cb9cfce00f94c130a17a1d9a4a358d
BLAKE2b-256 9d5c7a8fc2652ae1c3fc8776e62dc0fbdf4241703b282106a968bf1e2ccccd99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d53d121f057972bef6ade385170e51f65486b159fa64098d95d9900aa09e3ea
MD5 b43301c53725037fab8121db8173f361
BLAKE2b-256 5b4415bf43ad22c2b74c6f154a913197e7ac768d62b9c5a102c29c04f58dfab9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7b0a06b4d1f2e94afb23296912bfba46fa885ed8316d5f9055be4b147b92a200
MD5 847209312da9ea881707e15425cc1c7c
BLAKE2b-256 ca1fe454f79280ccf1a5a27be6a853e538115cd455635f324478682c1bb9978a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 418.1 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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9c634de500c46e46b479efad6ad0378995e66fd9514c7688d643232107ea092a
MD5 fcd3186a296a1c6a7d1bc34d14604cd5
BLAKE2b-256 e45ad5a3a5d9e22b40687646054f1e1a9f64c91d610dd89556992862340f1131

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 644c8c3a8d486d2c9f9c2546d63d92876c917c18841306e3344b19edd2c3b033
MD5 79d01f4d801818b639e2422b297900aa
BLAKE2b-256 54522b42ab01eefc33a61fd137802133e3f3264f0a519e7c60dbc5f1ea45fe0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fc2da002074c498eecce03fada152a03346d14e432768294fd8166b8115bad65
MD5 8879deae98ee697245e2bd7368383deb
BLAKE2b-256 9dc8485373e4b785146375d96c4262f8bfe470a06a0ba65c924b1251534ba7e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 442f3d1d73ff659a56ac6ab0f10d0c5d722b204dd1e40009a3df8081d8091e8e
MD5 cbec4463f4951f595d88c5447d590f25
BLAKE2b-256 99d176cf91a80a208c08a0413c6e082d9eea6c5faa117bf5ba3b9579e9d8b842

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cf361b611674435a9bce8399d55afd977ac15be6dc5fcf993b5cd73bdc17a82a
MD5 21b3d1902fbd58eb23a81aa5990a3c3e
BLAKE2b-256 622a11a91f62f5f577361baa7b8d0bc668ed888f114548f95616a715632d9268

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 418.2 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.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6c67814a2e241af94ca5d0d1e39f83bc9771b30ca2d266148a4e62253c3b75a9
MD5 3055656f650a7e2e7ddc0af7675914c2
BLAKE2b-256 27d33f9d9fc64646ea891e36ccbdd2943c349f3b54896545b375ff1356776ee6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-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.5-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3f7d1c4d88e5570fd5fcc3fec01f9e6a290a1b86c41ef4bd04086222d8fcdfe6
MD5 7aba6833ffc2558dff78296fa915cf5a
BLAKE2b-256 89032ad3975bf1de9a0d1453ccf3f3ef67baf98e71edb129cbe3be2699647ce8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-cp39-cp39-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 406.9 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.5-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 36894d9bd59db957f64ed7b0174f59ebb3a4d7eeb0889d6f3976b9cbadc30294
MD5 32f86a6c8fb762518ac71ba06650702f
BLAKE2b-256 50e36803ff19810d8ff838bf87325add1dec3f398c2f3de7ab2681a60628b44c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 344.2 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.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83bf1d5be4712602ca0c9aaf4865cb6c3e66c68444daffd299e45fa78d7cba11
MD5 5eb8c581c22d61cffbdf1ae7e0d4f20f
BLAKE2b-256 eebf403fdee8f8822503d47aba3fd9f6000e06abd7f9a3c621d68cd114808ac1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.5-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 361.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.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a49954992530fce899c87e469cd7f3956bea0621e7d9d7bf1bb8ceccb5b39aea
MD5 abcf317633b674d85704aff46586b31b
BLAKE2b-256 d10966bbb2bb845bec60415f6301844e51c464cc2728b1699f06f565e6031676

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