Skip to main content

Cython bindings for Microsoft xVelocity/Vertipaq canonical-Huffman string decoding

Project description

xmhuffman

PyPI version License: MIT

A small, fast Cython extension that decodes the canonical-Huffman string dictionary pages used by xVelocity / Vertipaq column stores — the storage format inside Power BI .pbix files (the DataModel part) and Excel Power Pivot workbooks (xl/model/item.data).

Provides a tight C kernel for what would otherwise be a per-symbol Python loop. On real .pbix files this is 30–50× faster than an equivalent pure-Python implementation and removes a hot path that dominates table extraction time in tools like pbixray.

Installation

pip install xmhuffman

Building from source requires a C compiler and Cython ≥ 3.0:

git clone https://github.com/Hugoberry/xmhuffman-cython
cd xmhuffman-cython
pip install -e .

Usage

The library exposes a tiny surface — one entry point for the common case plus a few lower-level helpers.

Decode a dictionary page

import xmhuffman

# All inputs come straight from the Vertipaq dictionary page metadata:
#   bitstream  — compressed_string_buffer (bytes)
#   encode_array_128 — 128-byte nibble-packed code-length array
#   offsets    — per-string start bit offsets (sequence of u32)
#   total_bits — store_total_bits (end of last string)
strings: list[bytes] = xmhuffman.decode_page(
    bitstream,
    encode_array_128,
    offsets,
    total_bits,
    swap=True,            # apply the byte-pair swap inside the extension
)

Output is list[bytes]. Charset interpretation is the caller's choice: Vertipaq pages flag themselves as either single-charset (latin-1 / ANSI, one Python str per record) or general (the byte stream is UTF-16LE).

Lower-level building blocks

For callers that want to amortize table construction across pages, or just to unit-test pieces:

# Expand the 128-byte nibble-packed array to 256 plain bytes of lengths.
lengths = xmhuffman.decompress_encode_array(encode_array_128)

# Pair-swap a buffer (bytes 2k and 2k+1 swap; trailing odd byte left as-is).
swapped = xmhuffman.swap_bytes(raw)

# Build the flat decode table once, reuse it across decode calls.
table_bytes, max_len = xmhuffman.build_table(encode_array_128)
strings = xmhuffman.decode_with_table(
    bitstream, table_bytes, max_len, offsets, total_bits, swap=True,
)

Format notes

The on-disk format is documented publicly in Microsoft's open specification [MS-XLDM] §2.7.4 — Huffman Compression. Each dictionary page is, schematically:

Field Description
encode_array 128 bytes, two 4-bit code lengths per byte (low nibble = symbol 2i, high = 2i+1). Value 0 means "symbol unused". Per [MS-XLDM] codeword lengths are between 2 and 15 bits.
uiDecodeBits Width of the on-disk primary lookup table (≤ 12). This decoder uses a single flat 2^max_len table instead and ignores uiDecodeBits.
compressed_string_buffer The bitstream itself, with adjacent bytes pair-swapped on disk. No padding between strings.
store_total_bits Total logical bit length; end sentinel for the last string.
vector_of_record_handle_structures Per-record (bit_offset, page_id); sorted offsets per page give the per-string start boundaries.

Codes are classical Huffman, encoded canonically by sorting (length, symbol) ascending and incrementing the code with a left-shift on length changes — exactly the reconstruction described in [MS-XLDM] §2.7.4.1.5.

Character-set modes

[MS-XLDM] §2.7.4.1.4 distinguishes two modes per page:

  • Single character set (character_set_type_identifier = 0x000aba91) — only the low byte of each character is Huffman-encoded; the upper (charset) byte is stored once on the page and must be reinserted by the caller to recover the original 2-byte character stream.
  • Multiple character sets (0x000aba92) — both bytes are encoded; the output byte stream is consumed directly as UTF-16LE.

This decoder emits raw bytes either way; reassembly of UTF-16 characters (including reinserting the single-charset upper byte) is the caller's responsibility.

Performance

Apples-to-apples against an equivalent pure-Python decoder on a few real .pbix files:

File Strings Python ref xmhuffman Speedup
Adventure Works DW 2020 191,489 449 ms 10.0 ms 45×
Sales & Marketing sample 103,290 160 ms 5.3 ms 30×
Retail Analysis sample 9 144 ms 2.9 ms 50×

The kernel does one unaligned 64-bit big-endian load, one shift, one mask, one table lookup and one byte store per output symbol. The decode table is a flat 2^max_len array of uint16_t (≤ 64 KB; usually 1–8 KB) that fits comfortably in L1/L2.

The GIL is released around the inner work, so callers can decode multiple pages or columns from worker threads without contention.

Project layout

xmhuffman-cython/
├── xmhuffman.pyx         # Cython surface
├── xmhuffman.pxd         # C declarations
├── src/xmhuffman_kernel.c    # C kernel
├── include/xmhuffman_kernel.h
├── tests/                # correctness tests
└── bench/                # micro-benchmark

Testing

pip install -e .
pip install pytest
pytest tests/ -v

The basic test suite checks each helper against a pure-Python reference implementation. An additional integration test (tests/test_pbix.py) decodes pages out of real .pbix files and asserts byte-identity with the reference; it is skipped automatically when fixtures aren't available.

Scope and non-goals

  • Not a general-purpose Huffman library. Alphabets are fixed at 256 symbols, codeword lengths are capped at 15 bits, and the bitstream convention is the one used by Vertipaq pages.
  • Not an encoder. Round-tripping pages is out of scope.
  • No charset conversion inside the extension. The decoder returns raw bytes; the caller picks between latin-1 and paired UTF-16LE based on the page's character-set identifier.

License

MIT. See LICENSE.

Acknowledgements

This package is the third in a family of thin Cython wrappers around Microsoft column-store / compression formats, alongside xpress8-python and xpress9-python.

The format itself is documented publicly in Microsoft's open specification [MS-XLDM] — Spreadsheet Data Model File Format, which the implementation here follows. The Python reference and end-to-end test fixtures come from the pbixray 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

xmhuffman-0.1.0.tar.gz (174.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xmhuffman-0.1.0-cp313-cp313-win_amd64.whl (77.0 kB view details)

Uploaded CPython 3.13Windows x86-64

xmhuffman-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (489.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

xmhuffman-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (480.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

xmhuffman-0.1.0-cp313-cp313-macosx_11_0_universal2.whl (167.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ universal2 (ARM64, x86-64)

xmhuffman-0.1.0-cp312-cp312-win_amd64.whl (77.2 kB view details)

Uploaded CPython 3.12Windows x86-64

xmhuffman-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (495.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

xmhuffman-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (488.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

xmhuffman-0.1.0-cp312-cp312-macosx_11_0_universal2.whl (169.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ universal2 (ARM64, x86-64)

xmhuffman-0.1.0-cp311-cp311-win_amd64.whl (75.8 kB view details)

Uploaded CPython 3.11Windows x86-64

xmhuffman-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (500.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

xmhuffman-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (499.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

xmhuffman-0.1.0-cp311-cp311-macosx_11_0_universal2.whl (167.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ universal2 (ARM64, x86-64)

xmhuffman-0.1.0-cp310-cp310-win_amd64.whl (75.6 kB view details)

Uploaded CPython 3.10Windows x86-64

xmhuffman-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (472.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

xmhuffman-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

xmhuffman-0.1.0-cp310-cp310-macosx_11_0_universal2.whl (167.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ universal2 (ARM64, x86-64)

xmhuffman-0.1.0-cp39-cp39-win_amd64.whl (75.9 kB view details)

Uploaded CPython 3.9Windows x86-64

xmhuffman-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (472.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

xmhuffman-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

xmhuffman-0.1.0-cp39-cp39-macosx_11_0_universal2.whl (168.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ universal2 (ARM64, x86-64)

File details

Details for the file xmhuffman-0.1.0.tar.gz.

File metadata

  • Download URL: xmhuffman-0.1.0.tar.gz
  • Upload date:
  • Size: 174.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xmhuffman-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d485f5f57757b29546cd8aa282176bfa178841f1634e0492c6d24deb7ca0c7f0
MD5 63ebbfad8e58690a3513ddeab497bffe
BLAKE2b-256 90b90a0d6eaa053d194274e1e4913457c9088aed76059c7c0a4bc63a48c752d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0.tar.gz:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: xmhuffman-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 77.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xmhuffman-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cc02c067d593e7e640fe20ac65f283c3da9c9202330183e789cf471b137d84e7
MD5 89483586425557ba4b66b43a24957258
BLAKE2b-256 50fb7578b8e5fc6aeba312be8258747a81683f312672d6455c0f4be59e06283e

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a8a47b687574cf23f8e1806caa8528f835131de9ef09dd0b9e9cc80f0f3efc02
MD5 8af60ca499066e18a5ead079c308aadf
BLAKE2b-256 363764f7fc2547aa7ce8b28176169bd34afae9ef48d4f638bf3b72902d433a84

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d37fbd460588bff0bf97d95674425007c0ab9688c9b1e27ce342eb8d82f3cedb
MD5 9282f5657cc3d6b93adedd933432d03a
BLAKE2b-256 5e00242dad5ac904e16752b275c7f0a18bad8b6fb970515e0bdf9c0f927e596a

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp313-cp313-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp313-cp313-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 f0fc45e358143b16ad4639a0fae4d7d40d96517d27968fa3aad0e6e3f9fad494
MD5 6450267b2f50bd5e653b5d74d8499bce
BLAKE2b-256 61b442b4cf08bedb91ef01a0781994e93f2d5af96261f0dae8fead4fdbbe7000

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp313-cp313-macosx_11_0_universal2.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: xmhuffman-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 77.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xmhuffman-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b56b8e22b0e38eff0d6fea2ba01bd1a8a98250c20874b06dee390161915618cc
MD5 69df6ff696cfcda9beefb80e91126059
BLAKE2b-256 33c9564960ee0a11871c93e782789c225be361884bceeedf27ad601dc94ae1bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eda3ec558587383744bdf813a30f52adb041cc4cd411d429c33981669ad2c394
MD5 7d5ecf8cd1c49ecb26e657f910042cbf
BLAKE2b-256 ec55a1e63f800d74bf706162ff19ae76341fdd0450ea91caa7dac7c69963ed30

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1dffebd01c894cf82deea4da138d7ac9bf3d06a28af3bd7bb7e05ef880f4ac3c
MD5 a13b282395754440c1c176dd33675b0f
BLAKE2b-256 71466a53a66303f0bcd478cd1d3fe081d6768af4dd8c7d692dca23a34a585f98

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp312-cp312-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp312-cp312-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 3889c95574b2107e5a8d14a08babeef91387d8c845c8489f1640099efb50a116
MD5 9a03861e16699ccdeea89c474c0df059
BLAKE2b-256 2329de7009f841b1374b8fb51b81675eab2eaa328a733a3ba28c4f23cee2479d

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp312-cp312-macosx_11_0_universal2.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: xmhuffman-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 75.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xmhuffman-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7c6af222460a2d14e046a15048231385bf702554a11102a820883fd8f8782162
MD5 1621a1b6e7aed1716a53c8401d175d14
BLAKE2b-256 7f4f969dc0ff1e29e71fd3a5cb0dab49ccf7b8f8173c8413393a47253c0ad203

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6d37585eaacdce590c0592bfe4ad748ba074556ac0e325fb343b9cc2b3c208b0
MD5 cd38f2c6edf18e251538ff2c68581ce9
BLAKE2b-256 5b8c3999626335d4034ec4c061d1a3048a5b0b16ffcaf404039278908d51f7d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f56d94c0060bee943d8bfe6c02a81ee76a0995238e00a272363c458fe232591e
MD5 c75adf061b27cd1ca8ace5a5fb76bb3c
BLAKE2b-256 596c9b40ff62d6a58e13eb278b2c1e8d3c65fe8ad239c1e3bc91c1c2892ef47e

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp311-cp311-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp311-cp311-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 87d4e7b58ba1ab37d97fe1aa5153376b877e7d13f520b359a16d19a83692999e
MD5 ba747cf2c664b71d6c81cd72b0698b8e
BLAKE2b-256 8f3673be7fe58946fc6403d4fed2f49585cd5d10e471f9f08f5d7475597f337e

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp311-cp311-macosx_11_0_universal2.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: xmhuffman-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 75.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xmhuffman-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f336bcff5afe4e929ef742b7755b18fa6465493ec3adba309a138ec5cd7b442c
MD5 c60d5c212139a5c2ab0ce77bdd44d999
BLAKE2b-256 588ecebe9bef9c351697d63c4b54de9589188b9d2c344954ca0aba0186db0043

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2cfdd854358716a22928687904604edd9333c694ce73317a10af67f98a6e9e82
MD5 94668b1e930317f37273960336e286af
BLAKE2b-256 b6f55aabfb0faa9d0239f9b7be76698068ad318f5376eb1c04a9f632c21723e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81a61ba4c2acd42da0f47e5063f96de43281a0f9cb95387ed11e76fc778a575a
MD5 679bbe80ee1fa2e62464831342479f57
BLAKE2b-256 a31617a638a8f82068211f660ae7329facabc29d549396a046332d6a3e4f663c

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp310-cp310-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp310-cp310-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 c5409e5ed4e4ae1eb9e452d3eea6ef714bde04b965de85ea0db2bb296a2eafe8
MD5 2f0975794dbd2e23bf4c407e7a2a1ef5
BLAKE2b-256 6338d057f647c86d32cb0a043fb13ba12762f8e424210b0d161f04edb13b01be

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp310-cp310-macosx_11_0_universal2.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: xmhuffman-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 75.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xmhuffman-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f946c601b6e728087599d291d04c161b8566c28c3a28812257eda5486681d363
MD5 bf55ab3da0d2e3756e53d51588c6d3b7
BLAKE2b-256 1d0f053c0eb19053a059e55c4da6df4e91e858f05d187f6143aa0ab93aba891a

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp39-cp39-win_amd64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d95dd154f8f1b0f0b2b48fb1ef90427c90ffdec28c933fd18f2dd6e35087d36a
MD5 49401ce8f7efccdb486637622be0b3af
BLAKE2b-256 1984a4d93b836e7700ef8b3d93229390a153e899b5792a1baee3fe452449f2d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fb4e283db5a705f4962aff476ba0eb3c21787d7be96b85243d38ee887de5acc6
MD5 fcc1c969a125850f51feecb17aa4ccc4
BLAKE2b-256 7bc582f7ed3cc49fd9de44283dd2463392e304052a10212a4b9366d11bfa09f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xmhuffman-0.1.0-cp39-cp39-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for xmhuffman-0.1.0-cp39-cp39-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 d2cf11bd6386c845d1191958aebf0eea5029cc5da593eb389ad06e3b70b1688e
MD5 a10f8af8495003eb31dfd50a89ecaead
BLAKE2b-256 a53259709dbbd1fb95e8232006271681aaddebd5c0bde677a5d6a0c8c4150e4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for xmhuffman-0.1.0-cp39-cp39-macosx_11_0_universal2.whl:

Publisher: build.yml on Hugoberry/xmhuffman-cython

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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