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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

zpaq-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (340.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

zpaq-0.3.0-cp312-cp312-win_amd64.whl (412.8 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

zpaq-0.3.0-cp311-cp311-win_amd64.whl (410.0 kB view details)

Uploaded CPython 3.11Windows x86-64

zpaq-0.3.0-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.0-cp311-cp311-manylinux_2_34_x86_64.whl (398.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

zpaq-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (338.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows x86-64

zpaq-0.3.0-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.0-cp39-cp39-manylinux_2_34_x86_64.whl (397.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

zpaq-0.3.0-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.3.0.tar.gz.

File metadata

  • Download URL: zpaq-0.3.0.tar.gz
  • Upload date:
  • Size: 153.1 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.0.tar.gz
Algorithm Hash digest
SHA256 526785947de8ddec0d1ad3a7ee0f295fa89fecd1bb8693759d681af9efb7997e
MD5 0f666a1ed4b560347fed78efa3792f10
BLAKE2b-256 35ec53865c61d73b4174a6c58ad17c42b3fe8b1838a69b33b06fe9dc4528ae48

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-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.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f1e3732895fd468adcc310d5de4cb11f1601b742b950564ce75f11ceb1be6dfb
MD5 8dca4751ee7d15637c905736bf6f223c
BLAKE2b-256 b28db7200920f1af09c1581561717bf9bf89b614a82b4229e5ed7d3aa4f9dc4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c48e5b2f2aa09575b8f905df5ddb4cd093b704476d9144a6b0a611be9cddd147
MD5 0fbc2f9689179e7fc061e22fcab0e535
BLAKE2b-256 34c71c933317325d37ed09a66ad4b27062f24c88e29aef6d2bb6c3264a7475f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 45696c8d22e3b17342a1075248a06d2bcc704b9d10b51c0eccca249d999787ec
MD5 850ca0556db64bbd9eb463670c56e495
BLAKE2b-256 d46756214cf1752b3d097a28091c9d48381956e65e826d45e4c2a8f84f7da8d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 664ea23a51574f7aedfef4fa9e952ab1fac8089e48b83693bb3b7fed17af0061
MD5 757333338c174d039e909ac84c7d62f9
BLAKE2b-256 f0fa4c9aeafc0557c9e0e8b1cbbd69ad2ff005fe5e063b60a3196d20cf49c6b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 90d78e05ec82a4d063d2e3a122c455f7c4d72fba1109b586d425293d8c812406
MD5 2107c8e4624eed8301ec7901c8a65dbc
BLAKE2b-256 5c72d45b307cd8bea2909ba89e1619e571d59de23747ac7830a52067996ac27a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 412.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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fe1cd754f1392bcc8e9b8437a4c7f8c330f4c67195dffa17588e3cf0a129f3c3
MD5 22e5d970ea17e4178041f56c8601ba6f
BLAKE2b-256 373374989088c3610eaa239c5079c162e35e117a0ae3862d1ae5931eef310479

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9323e940cdeccc0289854cd1b8ce9189cb96f778c67e02afca822ff80cced5be
MD5 0f07b36df28868cec4b1538e98fde479
BLAKE2b-256 ff4c3a6e2d8c683002003b3fe25b715270aab04faed5e481a68745ee5f773b75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 72d1ff42d96ad01ba9d06d3ac641e717f3f57d5b84ee641f85150408bf77aaf5
MD5 2b0eef5df24a839a2a48362631d5c0fb
BLAKE2b-256 e5a3aedeb958da18d6aaf0d2b93cdde4e9c0dcd13a1d944ee9aebc8a1ed98d80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08d67c7c1edcf58859c99b4ab9e88b547eef27b0919019afc69d6f5faf484d54
MD5 c5e1e882aaa8f0e8474b1ab9d2f1616d
BLAKE2b-256 0a2e19b3388aefe8e10b29e854b1ed997a50c36da1706332916cd141f8817b45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4356381b1edd6a4b8fb30b883409d54e068ff889b1dfee87701d581086b563b6
MD5 0bef1b4826e2ae77af2352ef268ac927
BLAKE2b-256 0167f8bb3e5fdbe2ba4da30d02f40c4d0c5e96579b2b2728938e4bd005163749

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 410.0 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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e276d43c3e7728e868b2e878a83182dd6f27677da06bef0eded901d850ef5621
MD5 e3a399f919d0b7b3fc09115e9d321dec
BLAKE2b-256 1e836ad31f8101d62992ad34b3d85aef76b88f046c99f293389694eb44d00d61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fa92a116a4e031afd87aa0a627c21ae07a2a5246ecc7faeee72baabadcfebc4f
MD5 5ef248cacf1e51eb49788b4d196098bd
BLAKE2b-256 62dd1c8c2b8e1c2373e3a7c1df0f056c6fa66ec39630891050a42d9e4653eb5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0a5cf6134395e7f9f3622edaf375dab2cd3732c570052a059177bf19f31b51aa
MD5 55bc51b8402460e482d159d582c9e7f9
BLAKE2b-256 7880163bb68c8e90133594961d33f46ab3dfb703a8d25c758dcfa3b6dc53390c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c58ca13e15d3c88c44e65d8fcb81ff2df0c17f28916bcc6e1a7d9ef849d24efa
MD5 cfb047515e3e8758ac52183f34733169
BLAKE2b-256 e58b4fb64f2423dc29078cc7d626263ff02fae02459b99f7070d7c51fbf35a0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 52993ce61f83acf6f5235cfb98e8b20a5adcb1e6b649af8abf16b53d0ff314c6
MD5 625f657a0a7d45150231ce745a44e2e8
BLAKE2b-256 fbe7d002c7e38fa5e2a835422157b92a4384272e6c8e32464da52278494a4771

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-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.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a416b6033d6786668b2fca1f1212242943882e80b58327de099cf3b00491bace
MD5 bb046d237a7dbd6d21e4973af2f2f8b0
BLAKE2b-256 a081663efbbd16e14a2ba6810c1ff72cb626ddb9a9618adc0836db3f8b07de9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9271a1008d6c350f6b0501b7cfe7235bdad56158468cfd00997488ba5783b999
MD5 fd7d2087fd27353293a69fe536d9def3
BLAKE2b-256 32c258f44742c2a2c0f9d32fb0965789b779ad8965bef143dee386adb653f839

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 db85b29554427df85e186606d8dd9dac189ed9e96c9857c0300afcf4f0a5be50
MD5 94e89cd7cf250417c44625a30b235aa4
BLAKE2b-256 c3347e9a55ef88d4944656c56019c98992a89b231c10827ec72c51d74439026b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bba79ab3d15d16c94933d8b30c2ccce3b0eb279cc45a8561570d0ad37f283522
MD5 b7479f27aca3a320dc9bd54cc9453e86
BLAKE2b-256 526c27b2e45bada542deb376fadcf7c09b4cc0f42090ea9afa3e7c04536c959a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8760eaad47324fca2c1c086cbab77bae9b8f1a16cc9a2d8ebd13e37c2a9895ba
MD5 7b4eab0e18b4defbb94c48794bf6f8c0
BLAKE2b-256 288de11495045c030c4e9c7267f32e143d35c59c3595217f4f4d5b8fc11f6bff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-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.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8f27bf213a2d431d64f5deb38ce3b788d459f0b5ef22976596c047bcd602291a
MD5 8db05f646cc76059f28917abceed81c6
BLAKE2b-256 7fc17ccfbfacc09e2c6cefe58cd8e994120f8be6ece0cfad08b7850461737f90

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-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.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8bf9b1cae7fa95b1cbff49f03aef49d7fd48e4430a5a8974a556342bc57afae9
MD5 881fbd78a37f11ba52fe0f51131dd068
BLAKE2b-256 75f22e04b03eede6173647676015013e57e32c579fbb5ce546b91d279eebeda4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-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.3.0-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f81aed6778eee41072a979de8e1022ceb14f0969da612e9e00bbdb06bb740db1
MD5 bc4f96503dfdc41cd0da0adbe3eb640b
BLAKE2b-256 45f1e7ec76d986da7515bad270ee7c9f31bd2df3372be76683f8d656a57c5a3c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-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.3.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 19429970225dc08c743b704a910e55e0b09aeff2665d81d8dcf1e7b5d22c7749
MD5 e321995e53ae677b29a236a5cd539c0e
BLAKE2b-256 87f77c4ae1fcbbe8004da25ba4ca33d4eb0f1c829de58d285482c25b698ddf75

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.0-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.3.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 12854df4478ef01e86420cbe053357ca227fa5f4f6b5a387dcadd5eee6e11236
MD5 90de310ff25491124f54b19d7fe5193f
BLAKE2b-256 ee652a78524373e2e346f09aacb4c228e6e3fb2993baa341b384c61008788a66

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