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.2.9.tar.gz (153.2 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.9-cp313-cp313-win_amd64.whl (412.9 kB view details)

Uploaded CPython 3.13Windows x86-64

zpaq-0.2.9-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.9-cp313-cp313-manylinux_2_34_x86_64.whl (401.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

zpaq-0.2.9-cp313-cp313-macosx_10_13_x86_64.whl (357.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

zpaq-0.2.9-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.9-cp312-cp312-manylinux_2_34_x86_64.whl (401.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

zpaq-0.2.9-cp312-cp312-macosx_11_0_arm64.whl (340.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

zpaq-0.2.9-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.9-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.9-cp311-cp311-macosx_11_0_arm64.whl (338.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zpaq-0.2.9-cp311-cp311-macosx_10_9_x86_64.whl (355.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zpaq-0.2.9-cp310-cp310-win_amd64.whl (410.3 kB view details)

Uploaded CPython 3.10Windows x86-64

zpaq-0.2.9-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.9-cp310-cp310-manylinux_2_34_x86_64.whl (397.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

zpaq-0.2.9-cp310-cp310-macosx_10_9_x86_64.whl (354.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zpaq-0.2.9-cp39-cp39-win_amd64.whl (410.4 kB view details)

Uploaded CPython 3.9Windows x86-64

zpaq-0.2.9-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.9-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.9-cp39-cp39-macosx_11_0_arm64.whl (337.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zpaq-0.2.9-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.9.tar.gz.

File metadata

  • Download URL: zpaq-0.2.9.tar.gz
  • Upload date:
  • Size: 153.2 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.9.tar.gz
Algorithm Hash digest
SHA256 56a2bac95c8b20a951ad966e0fd08992c02753d675b79495ab048bb15d2425b4
MD5 157b0d41846b3c218009f4b3e342d19c
BLAKE2b-256 dc6d2791085926e733024433c43e3f0d7443d4c7ec67153a215736a06dccef2b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 412.9 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.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 51529ffbd61f2273f9c943c718759235379bb70bc7b91c10605615f1c75548a3
MD5 13f3bff3b51e9d72ebcbdb8e8d31fc51
BLAKE2b-256 ffcfc83c53dd7d7c2a12b68bae269a2be86f4554d0c83456a000e555b13c22af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7fd3cac39b9cd94cb2a1ffb55d706e7132edb5d91bd5c316dc0f19ee51aac416
MD5 80fe202d4cdcc121d30874a9dbfebc15
BLAKE2b-256 b93246b438eb40a05959f0d66c513db1c81611ef67377bf8ad4044c7eb2f6b2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a0ae5e022fb4104c01048df67c347d098d1764cec2710eb25307b3913f22456a
MD5 3cae84d9949eb9d3dc034b382798fed8
BLAKE2b-256 16b488332e3b6cc6384996eb59f3790dac041e426aeff91e05492854e24fb6d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 014499440db5e577ff65f80514502709031edc2591d593c380682e4d7b1c1780
MD5 85d3b014d35f3d85741395672ff3f054
BLAKE2b-256 ea44ebb0b599bc09c2b3f91f55ba13d041f5aa17e2ab7972ab2a31c1d18020b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 22bf0e9182574c714920de68c466fbde692b4ca210b0e2ac46c6233847663a0b
MD5 0d90f51cf82dce168a7606faa40f72e1
BLAKE2b-256 cc5c5a7b210060879af427a53611198edb9a09251bd5545768ce17934248e96c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-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.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 acfab536ea373e98c734a5907fdf5bba11e434537b3eb907388f03b037c37d7a
MD5 3e9a7456cd59048323b703855710373c
BLAKE2b-256 a13563c8032d65382cf86c197f472536217fe0e38eb404a5e7299f4fc2a17b6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 def7a7c5722e6ea28a9c6df40ee73e6d60c2f6a93f55d16dd813eb0fea3c7b2d
MD5 dd211450bb2f17b9358ed7a17dd53296
BLAKE2b-256 d4d35e92092331978e6c3bb871de992122ae70170f8d734047218d1dda275769

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4e88f09e78fc3ea9bc38b883e12aae6d3acafb39db512743a965779412d309ee
MD5 6bb845ed3bfc53fea0ff4b4261926726
BLAKE2b-256 c66f40528c6e2c02d943e57d1236932bb7915133f82e841d9955e4eccbf1ac13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c0758c5f94f123985203d98da65730906bc921559a9fbdd33635c91deb5d625d
MD5 ce9b3088ccb94be078adacc94460971c
BLAKE2b-256 a8aafd57166f8e20ea47cb20544d77c0d00ef1d170bc0d982bc37188edbe81c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b1690bb456ab35f7431902b07145ba3c2a5029b75c19cfdad0065f428170734c
MD5 4ea097e2c6105e8eda7b267b814557a7
BLAKE2b-256 9a4d8be9b4cd999801482e26493079bf1fb82d5c9557bac8f0615887c3c8526c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-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.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f32b3f68619f914cba1dac44c75066125a3a616e7dbe86570919e1ac65b3ced9
MD5 20d776970f4bae90027e3ec9fee24e02
BLAKE2b-256 5fee2f8d911c3741e6ab8636cff5ab0bdda7b2683ad37483164e1f3c285f8845

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 64644af18597b18b0b8113857338e5231a714e67be5847feedbc5b9c148f9eca
MD5 30b78d10227222b470ec271a7487d253
BLAKE2b-256 61443cc1b0e0cf7168f24e26995020db39720e61d62ed94f54da921e00818637

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 894762371e3f24d7791ee7d30475179812706ac545c9bde38a3218a391810d9a
MD5 af6ed6607dc1a64c333a195a36b6b3cd
BLAKE2b-256 398892de8ddfbef56f37518577e81a6e7982573b72a27033c215b35944ceb47e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81b460d7b7846364fb56cd58419505860a0c9be97b4a1f5b7acddf8690ab90c3
MD5 7a18d890f8abbe7e91ea49c8077d6c40
BLAKE2b-256 db2aab2a43f30bd94a96a3246ecd476ef8906eabfb2215be77eb8952643bf05d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c7203ca2388845300bfdb98c8e3ce36804e1267ffe7c85a83809411bebb734be
MD5 e689d2cb2b68269c9c216127d87e8c8a
BLAKE2b-256 8875081b3e4ae5a3f958d2d7eade678af7d7f5a5a1af6bdc490a2f526dd7012d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 410.3 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.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 477c83a975b1fdc78d33c1a17b1886737e9246cd359587931865454824ad7d3c
MD5 3ec703a0151ffa225c5e22cfbb25a1c9
BLAKE2b-256 38204d4c3cbae225644aeede3ed81e83aef4af9b43cfe8f7dee97216fd87e82b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c3a8fc2170953c1df10d863010e07cc57c0c3908cd2ac48d1b507d6c298d1a83
MD5 5329e9a16043557c10046a9b69c0af91
BLAKE2b-256 cb95641069e09765628caf2daf5a5fc0177faa1eba57a74c2103136d3bc5c04a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9d8c18f0a2306fa1a314d09f458e99033f95f799a962f451cb097bd44d5a5d1a
MD5 8d4fa011e34dbcadbeb154e634ab938b
BLAKE2b-256 aafa7d3e8bdf6a45ca0447f1a89085977e88c3a08b9112a64a885b52902cf10b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66f0768177d563ad2a87014aef4e4a8905c9af9b991e10d82774464ab985b00e
MD5 e58e3ccb45cdc4e3f7a359452a80d6f6
BLAKE2b-256 e3f594df0be01184b6f219ebb04bb7037b720228f6212dc5530a1b5c6976710b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.9-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 70a67144e88fd96f3fa775f00c5a745c6bfdb44cb5b48d0d6fc1c7fb8a731cea
MD5 e8f1840bd44c6969edeab701854408e1
BLAKE2b-256 8fe8aa3c50a5976b759e31c5e0e839e1ec309f003109f4f2c9dda8ee83145abd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 410.4 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.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b72707fa1f997ccd8fb6c3f6cdbac094d516710f2fed2dc68e54b6bfeb45839e
MD5 ff054449809f500af06e41bb22b305cf
BLAKE2b-256 a4b0aea6beab1450c9a37b1ec8230b6e82c367f8584945c41779ce6b2a41cdbb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-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.9-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9022c4fb7d9ec248e57e85de693ca271102c5ea7537c815d5c73bac42a90265f
MD5 35e57176fd69b5e9c0dfef6771b03608
BLAKE2b-256 c920bde1438895a3649b2ecc511d90ac7f10cf4916a3da7bdb8df6c776ec748c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-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.9-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 958f27c51d2a6beaede84f7c08d0785e49e494e4dbaa1a24cbc106f2a63d2cb7
MD5 1700101979141ca79217b53187e13905
BLAKE2b-256 1bc2c51c1bb8ae4e5553981512e580ec5b36819d9a27c1d1de54d317e2919ff6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-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.9-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe31bca6eefd9380c4ee1d58c4642fee6045ad196f269a1e0ec863a9c3f8e0ba
MD5 fb3580a7f2cd1005bef597f1a0b6b5bf
BLAKE2b-256 8db67a2be2be7536eff0474750f0947a0aaff8cdccfd15fbd8c068737339a6c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.9-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.9-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 666d65f728844f852e1fbce9a93a728c4d61681841b5189ef610de312e0d4302
MD5 0ad738f0087d19e26511d6a81e158c51
BLAKE2b-256 badbf0ba4c5c441c5b8b0a5e25a1023f7688b2e82e8d13f735ef8a6e45b1c40e

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