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.2.tar.gz (155.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.2-cp313-cp313-win_amd64.whl (417.2 kB view details)

Uploaded CPython 3.13Windows x86-64

zpaq-0.3.2-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.2-cp313-cp313-manylinux_2_34_x86_64.whl (405.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

zpaq-0.3.2-cp313-cp313-macosx_11_0_arm64.whl (344.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zpaq-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl (362.4 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

zpaq-0.3.2-cp312-cp312-win_amd64.whl (417.2 kB view details)

Uploaded CPython 3.12Windows x86-64

zpaq-0.3.2-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.2-cp312-cp312-manylinux_2_34_x86_64.whl (405.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

zpaq-0.3.2-cp312-cp312-macosx_11_0_arm64.whl (344.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zpaq-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl (362.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

zpaq-0.3.2-cp311-cp311-win_amd64.whl (414.3 kB view details)

Uploaded CPython 3.11Windows x86-64

zpaq-0.3.2-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.2-cp311-cp311-manylinux_2_34_x86_64.whl (403.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

zpaq-0.3.2-cp311-cp311-macosx_11_0_arm64.whl (342.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zpaq-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl (359.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zpaq-0.3.2-cp310-cp310-win_amd64.whl (414.7 kB view details)

Uploaded CPython 3.10Windows x86-64

zpaq-0.3.2-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.2-cp310-cp310-manylinux_2_34_x86_64.whl (401.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

zpaq-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (341.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zpaq-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl (358.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zpaq-0.3.2-cp39-cp39-win_amd64.whl (414.9 kB view details)

Uploaded CPython 3.9Windows x86-64

zpaq-0.3.2-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.2-cp39-cp39-manylinux_2_34_x86_64.whl (401.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

zpaq-0.3.2-cp39-cp39-macosx_11_0_arm64.whl (341.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zpaq-0.3.2-cp39-cp39-macosx_10_9_x86_64.whl (358.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: zpaq-0.3.2.tar.gz
  • Upload date:
  • Size: 155.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.2.tar.gz
Algorithm Hash digest
SHA256 3509d87f3cf8cfcb673d885c2eacccb4691fd92ee8e8c15d0e7e1f0141a0836f
MD5 19089ba25e571e0b078fa60b0ad910c2
BLAKE2b-256 375eca6d8ea0b4b8ee87fd55e1fddc5c595949d027d29b056a01e7230b2faec3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 417.2 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ce166b7c99de07195280d316b6d3f44390b812e40cf7e53623be1eade0059990
MD5 4da6af9db1304b41b620b02c787a035a
BLAKE2b-256 d8ad7cb0cd11fce33988f5ed1aa5e23077898165e5eee0f47cba6fed5ee4a260

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1eff3b226392f0edbb44857ffa0f9bb81d9c2bce3de866b6a3c700a0b421e922
MD5 842987d5813f40cbbd4c6bd4f080fb4f
BLAKE2b-256 264c86238d95a24969f8ca012bf9e32fb4caa6069cac6ad45c0726f9af633424

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 004fdaf6cd4fddc5cf21a10c62bce9302c4b98d5d651b39e45f2550964d59623
MD5 a2982b9af709f9823ab120888e54b02f
BLAKE2b-256 588e860bc1cdb9324edcfa3de34733ca803ee4aaeec1519dcc98e176bb8022df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4372f7663eabd4e8ea5d936af29ae5ec940efb376ee8f8c31272b400c5bf83a4
MD5 95532e0586f479438c93eb61fe6db47b
BLAKE2b-256 42d1900ff32a64a7a84c2e47d77fac9cb4bd9fe12064ea40053bbc8363f2cb11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 56c7233ba397abef999b7d850be571ac5c6381b4769858e3423a7134f076b7b9
MD5 7187eaf8fbeab114ba904c5d950527f9
BLAKE2b-256 abd33489c585854244db8f1be10b8029a85e90b2da8404ca11cec635a7e93cd9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 417.2 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0c0087d24af9481aa4d76477b590c6c4874e22b78041a376f5e2657f4910f8df
MD5 50fd318601fe2e73e54a9bc82d12d5a3
BLAKE2b-256 9fc1a960da5859354f2441d03ec22d3a2615c5dc1e00db86d9e009c1232349a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 01bdace27110fa6a6a3b781fef8773bf8df96f4d6733f9c1ac972616a8109a5c
MD5 a78445b13d97af2bb0b1c83f245a61b7
BLAKE2b-256 58dff98fd7a0ead04f7a97a6a07ba316a5bb6b04a11dafd6cf78349f72b2be90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b261ae1dd8011c66c7845c5d8edf5eb2d3e4a646f274471048a562f7a0c9c7c0
MD5 b3fbc8340de0539a3b061abc5157971c
BLAKE2b-256 25460bdfd2ab1eb850f3717d71e2d3bbe67a97e2fbd20c54ba1532db2a6f2ebd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fc823d1788d35e31bb74abc37b6ed2763e0a103180cdcb475145e37ad2b991e
MD5 67e273341b292038f539e3200452c3ac
BLAKE2b-256 b3fce758bfefbe688f4dc208811db01a5409bdf6b92d5c30b093c2d434931b50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9277e0dbe408b9d3153e4e270a2085980e6f132db94638130141903779668655
MD5 d40c17a98f0ee44d3405a336d7ffb4ca
BLAKE2b-256 501d602f65711aa2b3edea65e43f6a5868caa22d698b43ee9aebcea33ca799b8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 414.3 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 550f726db09524c1cd9b5b458f09dc7cbac2408fa5b8090b6df6639a1d721af1
MD5 1156126b9ea6c83f64a8f0dee93c476c
BLAKE2b-256 63d4d5ec8f146a8089361eb27eb7003720246fb19af2f3578ec6d2075d9d825f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 afa59a30dd03edc667529979d838d917e898a6fac9ff5c9e302683b85e42a05f
MD5 5ff81e451076fc68623a8d464095875b
BLAKE2b-256 3227ac4b43a360bf280d74774009ed8fe56506624c1b4e41cb819a284e2d041e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 53f1704ee757a2e39b0e5ad5bf6cc700cfbc656a3bf0ce8f027fe7dd1641d700
MD5 9c72fa45541373ccb7fc2b191e46fdaf
BLAKE2b-256 746374800836e4fae2768fc73bcfed6d49e3b81d228b10f7d3e56bb514aab802

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05bb7a3fb2b4e34cb72dd12b5f769816d22c059ac9a8c869ed9fcaec3e09fd0d
MD5 124ff5fabaa3b3195b6f28126aca34f3
BLAKE2b-256 0e91df5a6e673dbb5adc8b91a97bc948f801e70bcd94db4249308e6b2b0091bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8806945d54f49f20ca09a26c556170fa1be58cc8541a6e8d8dcf06c69bd3f5a6
MD5 b69595fa1a15f971b57ae3a703e37eaa
BLAKE2b-256 89dbb32acf138781b63552df611b5646b2aa22ae4c43c91378f4e8929fcc77a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 414.7 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fa575f3c855e8e48d29eb9110fc3b89fc1d374b3e23d6cb8d2f0ec12a2fb9737
MD5 42a852d50c0950736352ffbed7ac6351
BLAKE2b-256 6490295844896a0dbf139923fe6e62ad9772f3da84f14549e6d81f85168aa8a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4af65d25364f44c72de603ccac7c15c774ed02a1d7ca0ccfcccc28fdadf5e130
MD5 b0177b1c3ee76b347772c0644a9f0498
BLAKE2b-256 965a09ead7b2a2fe2d6e2ff52e8228a9dcc21a388775326e4717e2999da019b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b07fa0ff9859fb938a9fbf0feee1e8cacb53498bf5b96f7095c14d4a75aa2ce2
MD5 f9e7c4f488b5fa8cd8a642487e6321b2
BLAKE2b-256 324b5e6c86bb0fd64a1dee0946a48404b88d8642785b5d2bdca72c2dcd9bddc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3819b135c79c2bdea9d09d6ab2f72b0e41931848243a35440c0497810effeb3f
MD5 cef76421e6110477e1d6236b83bd6945
BLAKE2b-256 a8487485361317eba69097c2742d2448172fec2b72a087c44ce6fcd8001d16f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 227031b7f8347520c5a368ac00ae621fc44dbdfe2d899e331aa5b88bffd23c4a
MD5 e98bb4ff676aebe262157d45a8f878c0
BLAKE2b-256 f305d245fe1f2fd7b39ca838a0b82f50151b0312ccac4db2e4129a56f1c5ab41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 414.9 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.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7571741280db12e042cb0e733390a48ae96c4212b155cdcfa719f1a84b473f79
MD5 948189d72568066b7f3ab9f9a01cbd88
BLAKE2b-256 91964fc033642c34e2cb631a88c38b95419294e0b991fb05e315ba0b037ed324

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-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.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2e39416fc1ed28ac135b16e10b349af1cb85d18ea8a0a9ef1192a46b71ac97e0
MD5 676efcbe64d2cac083c4a8271e263007
BLAKE2b-256 4da4a86c831c8274408bac15cbb174787d2b59acbf1dd23e75b75176dfa3d2b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-cp39-cp39-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 401.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.2-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e926358444348150632efaaeeb832d16f7a81497f7d561809ac2469e3cbc5094
MD5 337792eb3ee2762a9cd724a91c4b14d9
BLAKE2b-256 a438eff9061369e59fd2282c22013bf19b930cc24021a3bf5b4bcb9207d6d4c3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 341.1 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.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd5dba1cdad5de24a0ec506a1e5727c7e450c8e7f4200299a2c88c98f7154fb1
MD5 e285130ccedb77b3327233baccef6528
BLAKE2b-256 a6b141ef5dc4b7043332d2f0d3314aa4169cef147d3314998ed6f1bd553fc6f7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.3.2-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 358.4 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.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a18506ccc163ae1dc2c26af9daba91c291e11dff205cc1cc96d29db97ec56871
MD5 58c55efd3519ac136807be06eb865e93
BLAKE2b-256 10b614e3fd146cab8779a8d0cc853345b4736ee3953b2f527bff35046556e9ec

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