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

Pure in-memory ZPAQ compression for Python — up to 5.9× faster than the official zpaq CLI at the same ratio (with optional fragment-level deduplication), byte-exact CLI-interoperable in both directions, multi-threaded compress + decompress, prebuilt wheels for every modern Python on Windows / Linux / macOS, zero C++ toolchain or runtime dependencies to install.

import zpaq

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

By default zpaq.compress(...) auto-scales across all CPU cores (threads=0). If you want the absolute best compression ratio (around 0.5-3 percentage points better) at the cost of throughput, pass threads=1 to keep the input as a single block:

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

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

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

Why this exists

Every other ZPAQ binding on PyPI shells out to the zpaq executable, which forces temp files and a subprocess fork. This package is both:

  • A real pybind11 binding around libzpaq (Matt Mahoney's underlying C++ library — the same one the official zpaq CLI is built on top of), wrapping abstract Reader/Writer adapters that read from and write to bytes objects with no filesystem detour.
  • Distributed as prebuilt wheels for Windows, Linux, and macOS (including Apple Silicon) across Python 3.8 through 3.13. Installing it never compiles anything.

On Windows, the wheel statically links the C and C++ runtimes so users don't need any "Visual C++ Redistributable" installed — if Python runs, zpaq works.

Performance

benchmark

Speedup vs the official zpaq.exe -m5 (Ryzen-class 12-core x86_64, level 5). Both compress and decompress are now 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 benchmark by thread count below. CLI is the official zpaq.exe v7.15 invoked with -m5 (the speeds shown include its -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 %

How the speedup is achieved. libzpaq's reference compiler emits an interpreter for the per-byte context-mixing predictor 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. This package's x86_64 wheels enable the same JIT path plus:

  • multi-threaded block compression via threads=N (the official CLI tops out at 2 cores by default)
  • multi-threaded block decompression — we scan the archive for ZPAQ locator-tag block boundaries, dispatch each block to a worker, and concatenate. The official libzpaq API exposes only sequential decompress; doing it block-parallel makes our 125 MB decompress about 3× faster than zpaq.exe x.
  • skip-checksum-by-default (verify=False), since pure-data workflows rarely need the SHA-1 per block that zpaq.exe always computes
  • AVX2-enabled compile flags (auto-vectorization on x86_64; CPUs from 2013+ are covered, older fall back to the sdist build)
  • a libsais-backed suffix array constructor for level-3 BWT mode (Apache 2.0, several times faster than libzpaq's vendored libdivsufsort-lite)
  • a faster decompress path for archives produced by zpaq.compress (avoids 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 reduce per-block context size); the ratio for t=1 matches or beats the CLI on every workload.

Pass dedup=True to match zpaq.exe's ratio on inputs with repeated content — fragment-level dedup splits the input into ~64 KB content-defined chunks and stores each unique chunk once. The output is a JIDAC archive that both this package's decompress and the official zpaq x CLI extract byte-exactly. Default behavior remains the raw streaming format (faster, slightly worse ratio on heavily-repetitive inputs).

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 and order-1
                             # redundancy, pass them to libzpaq via the method string.
                             # Slight overhead, helps ratio on some 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 this package and zpaq.exe skip verification on
                             # extract, which is faster but won't catch corruption.
    method=None,             # Optional raw libzpaq method-string override (e.g. "x4,4,1"
                             # for custom predictor specs). Overrides level/hints when set.
    dedup=False,             # If True, emit a JIDAC-format archive with fragment-level
                             # deduplication. Input is content-defined-chunked into ~64KB
                             # fragments, identical fragments are stored once. Output is
                             # zpaq.exe-extractable. Improves ratio on repetitive data;
                             # currently single-threaded encode.
) -> bytes

zpaq.decompress(
    data,                    # bytes-like ZPAQ stream
    verify=False,            # If True, recompute SHA-1 of each segment and compare to
                             # the one stored in the archive. Raises zpaq.Error on
                             # mismatch. Default off for speed.
) -> bytes

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

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

Compatibility with the zpaq CLI

zpaq.compress() emits the same on-disk format libzpaq itself writes, and zpaq.decompress() understands archives produced by the zpaq a journaling archiver (it identifies the JIDAC index/hash/info segments, discards them, and strips each data segment's trailing fragment-size footer so the recovered bytes match the original file exactly).

Tested on ten varied real files (1 KB to 25 MB, text/image/csv/jar/png/jpg/svg/exe/binary, compression levels 1-5):

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

When zpaq.decompress is fed a multi-file archive it returns the concatenated bytes of every file in the order the CLI stored them. A future release will expose a per-segment iterator API so individual files can be addressed by name.

Future work

A few performance levers are still on the table; pull requests welcome:

  • Profile-guided optimization (PGO). Adding /GENPROFILE + /USEPROFILE to the MSVC build (and equivalents on gcc/clang) typically gains another 5-15%. Skipped here because cibuildwheel doesn't expose a clean two-stage build hook yet.
  • Hand-written SIMD in the predictor. /arch:AVX2 is enabled so the compiler auto-vectorizes where it can. The actual hot loop at compression levels 3-5 is the JIT-emitted predictor, which currently emits one x86 instruction at a time; rewriting the JIT 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. zpaq.decompress currently returns the concatenated bytes of every segment in a multi-file zpaq a archive. A future iterator API would let callers address individual files by name.

License

This package is 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.7.tar.gz (153.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.2.7-cp313-cp313-win_amd64.whl (413.1 kB view details)

Uploaded CPython 3.13Windows x86-64

zpaq-0.2.7-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.7-cp313-cp313-manylinux_2_34_x86_64.whl (401.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

zpaq-0.2.7-cp313-cp313-macosx_11_0_arm64.whl (340.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zpaq-0.2.7-cp313-cp313-macosx_10_13_x86_64.whl (357.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

zpaq-0.2.7-cp312-cp312-win_amd64.whl (413.0 kB view details)

Uploaded CPython 3.12Windows x86-64

zpaq-0.2.7-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.7-cp312-cp312-manylinux_2_34_x86_64.whl (401.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

zpaq-0.2.7-cp312-cp312-macosx_11_0_arm64.whl (340.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zpaq-0.2.7-cp312-cp312-macosx_10_13_x86_64.whl (357.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

zpaq-0.2.7-cp311-cp311-win_amd64.whl (410.2 kB view details)

Uploaded CPython 3.11Windows x86-64

zpaq-0.2.7-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.7-cp311-cp311-manylinux_2_34_x86_64.whl (398.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

zpaq-0.2.7-cp311-cp311-macosx_11_0_arm64.whl (338.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zpaq-0.2.7-cp311-cp311-macosx_10_9_x86_64.whl (355.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zpaq-0.2.7-cp310-cp310-win_amd64.whl (410.4 kB view details)

Uploaded CPython 3.10Windows x86-64

zpaq-0.2.7-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.7-cp310-cp310-manylinux_2_34_x86_64.whl (397.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

zpaq-0.2.7-cp310-cp310-macosx_11_0_arm64.whl (337.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zpaq-0.2.7-cp310-cp310-macosx_10_9_x86_64.whl (354.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zpaq-0.2.7-cp39-cp39-win_amd64.whl (410.6 kB view details)

Uploaded CPython 3.9Windows x86-64

zpaq-0.2.7-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.7-cp39-cp39-manylinux_2_34_x86_64.whl (397.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

zpaq-0.2.7-cp39-cp39-macosx_11_0_arm64.whl (337.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zpaq-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl (354.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: zpaq-0.2.7.tar.gz
  • Upload date:
  • Size: 153.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.2.7.tar.gz
Algorithm Hash digest
SHA256 a9cb9301e682c438b226d9c600967fe5cb1dd76566269365eba37daac1349565
MD5 556dfc5c26fda32bde77e6c18fae79eb
BLAKE2b-256 6fb9ed2be691c7543303813295a4d9e3c918657be1b5984a3dd2f7827ebcfd95

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 413.1 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.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 61d8caaa3426ca1099972099ba879880985c6accc8391cd32ec5089b29fd20fe
MD5 34eb20285126d31c7faca1dec7587dda
BLAKE2b-256 a2a96140407fee2b37cc25b6bbfd6daaea3bd83507d3861d60831534389723b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fb29860f510086b820affe1d16f1929fa7103f5c17abfb7996f30fc8108c07b1
MD5 0762ae222779586388d4c09fc9276a0e
BLAKE2b-256 e76100d10e402fc219c2d3151c177f20b8fdb0164daba2df56054dd008dfb268

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d7155ae81ce98c0d331b63fb855b1eb480b36ff64bbba8ef84b327eb54812907
MD5 4b9da01ac3e6c1458495a3aa18ab92d5
BLAKE2b-256 a10e48531c08ba839898f640d279e4eee4b0b5fe1923991bf6d7277da9dea5f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06a8a99969b48a1609fd25166d3798988c109c2bad85ec8f8e7ce9123c53b557
MD5 2d5bbfda6e0a45385b7a88d787c1ae19
BLAKE2b-256 aac018188f23cf0bdb31cf9ec1ad714401116e4837f2f17cc0750bedcb9cfdac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 187c10a0154f640440be4934a5a8028a326c66bf42ac611b8e21a9b225a851c0
MD5 bf69cf7f0dacfa9a8ede9fd355fb2b22
BLAKE2b-256 5e7ed50a482b581eafc9c6715139d974e3ff2b17bbc319ba34e093469d94e2a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 413.0 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.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ee4171221b39e123c3085807fef1b5bacee4e2cd9a0f25d64c9431915745775c
MD5 53b58aaf255fdc82182ebc5136211f22
BLAKE2b-256 c8079c248d8c29ee9ef2fa7158397b1b1d1b35b47fe6fb820c75d9e651bda445

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d7891bcb90fc08314462bb5d4c4b06281f0ee816518932ed24cff242ff2b8557
MD5 f1c31b01686a19ea954f6078ff096bc8
BLAKE2b-256 8c956a9a6c84bd124fb43f28ca16c1e1af83252e5001c5c8e57a634b226ebc9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 933e055aca7df15bb57230cb421f44cf804f8a5199d8081e99a18eb32265891e
MD5 17eb4cb7a37af77869e7a0011c7a517a
BLAKE2b-256 52345276beb28270466a943cc11e7012e60914feb72643a6e7738b0429310cad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ba3c349302267db12c0e856ac2c81bb0cb68a0e96468dcd2079211cd4403cff
MD5 2e7b709a36462f700b6e763a5e83fe09
BLAKE2b-256 6e88a0afd66a01b9629980dc03abe7aa6b1b383e054ad0b7d4b1506ae53ccb7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f0c2547785ba2e6f464de36cbfd295950450e2e9bcc1082aed44702fb4578944
MD5 3279ff7a0e7ea0928b20ceb47a2a3b7b
BLAKE2b-256 c8926fa782a7d1a55cb8ec3bdfdb18492657893df73ec20a7173c9d3a63a3c25

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 410.2 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.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1273c4cdecedf4aa1b47e904c19057e991dbef2c4979acf9272c3f5160606b3a
MD5 2b5d4a656fb35323e0248c186430e39f
BLAKE2b-256 943b0e807825be8b00d95ea9d62d77901f5111ac22ec63f929207a6566f824a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6ba75a95868a51fe2edf92840b78d0f96cbccb5e80d4c0b8b168f009ba93b70c
MD5 49421d7e7ba884bc83cdcbce8e70eead
BLAKE2b-256 32de3ad053074b4b52f9e638004e5226ec98d5f47f8cafac94d24629bb37450c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dea83f5b605c2dd296ab09607c5130351ffc596cc01bcaecad59b4e393ed139a
MD5 284517c05b768b5239027db285049498
BLAKE2b-256 602a8fc9e0aa2b0717324cee91e3a5d306688b4c24a096d2464db1ed055f244c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 014847df5f02d479152de4608b9ccd7bdc5068ddc8e371435f5bf972cc11754e
MD5 2643393d68b81b05b07d7846b9062921
BLAKE2b-256 565d88577b51d9b431fead6f49f9b25279eef6870aaa965f5e384576e87dd30c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6c90f7104b9cb27bd5c1b0a0514fac293d0305c8cfdaafe4f62ca18e7827c82e
MD5 1854f0fa83d29b861f7795972947d975
BLAKE2b-256 29d652eb5b0d54aefe5e21b2983394836c221886210972ebb9532cd4daa87d29

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 410.4 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.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d9fc79b2154069c73967cc67b1c788c6b1578de7eb6a56b5c82098b881a2622c
MD5 74eaae16f5a07b478ab2ae683ae2b2cc
BLAKE2b-256 357f84e0d1510718b8cf2617ac95cc0823a073b7c3c6fd8e56ef604c218548c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 40b68c575dbae20eee466a3375cd9e6a529293bbeb9bd15b87d2e581ab3459e9
MD5 ba0b94c7ee6592e10af6016c70f5dc48
BLAKE2b-256 53a25b47185ebae20d69a12e152e47ae0c4b2a6d5ddf05ce6da12cb31600f9e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ccb79f5bf78955d8b040e76550ff20e867ad6fe87c13354b4d224ed44497f5eb
MD5 26b1ddc16af6a3f3ce238f6bdb0f6684
BLAKE2b-256 40e1807cfcd76b5ff472b6960e4b51efe93e6e621e06cafeccd8af73f8052054

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 502c9e685459da1b470a0f8965e0f033dac031fa588cc8bf88be70236a58b017
MD5 095ec681612657067da26dfd6833d2f6
BLAKE2b-256 49398dcce275ffb26cd16806734a415e4f4cceb2b7c971aa51cf5a0bf9ffea9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zpaq-0.2.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0c01054731c84881f2a81854efa9a673f5528dbb0cded89693991994ce5ad11b
MD5 a0f83d50164354f8f4661d6763d6ebab
BLAKE2b-256 de0008b7b2b2b4fd571fbf5d49ca2fb4d558d1c4143f111b0b7db80121d5b96a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 410.6 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.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1e8f4c19aae293901b42be8abc710cd73c5a4d1af4e4d34321152eaa52df578e
MD5 d981867c05d397f142a5b291c7ec3c18
BLAKE2b-256 44b1dcddc81e648a3187deaab74fa6f02667bc1c9d08c69417e04a9c254e7207

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-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.7-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34815516caf35c5ffd52d2acc5a16db7b5d9d74c684d5f25c8abc30d744ef934
MD5 aef18ab94371ffdda8c76c6ca48c739f
BLAKE2b-256 c2e359537033d2e45e3b8808032c9151dbe764b003a94fc431ba2b7aa199a941

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-cp39-cp39-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 397.4 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.7-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2b3f07f6fcf8821f403f2aa7fbf0bea5c3ac37a796a679bf3767b735ed289b19
MD5 a1d02db578dddf8fbdd287e642c6b779
BLAKE2b-256 161b8bc698e818d13860e621379ad59ec2c1d352b74cedd2eefc3e6a95c23f36

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 337.4 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zpaq-0.2.7-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c2b413c3f668aed741e8c74c6ee2f6740413198e332ad6c79541c6759b610503
MD5 acdc3a5c14b1c8defa95e2092430d113
BLAKE2b-256 4fb042974d1c4bd02dffbd7c54c3b03b58b98d9976e3e960bf869ff23171be73

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zpaq-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 354.7 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.7-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1ef309e9e1e54351ceb2a57ac3722a7e3ca38466d036a96d71f638781e498c46
MD5 381b350017a4baf67d71b9c3cfc0af23
BLAKE2b-256 bb37520a31f47bfa8555b19988c7e241724d05818bbcf68400868cbeb1f77c8e

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