Skip to main content

Fast Python bindings for libjxl and libjpeg-turbo with GIL-free encoding/decoding and native async support.

Project description

pylibjxl

Fast Python bindings for JPEG XL (libjxl) and JPEG (libjpeg-turbo)

CI PyPI version Python versions License: BSD 3-Clause


pylibjxl provides efficient, high-performance Python bindings for libjxl and libjpeg-turbo. Built with pybind11, it features GIL-free encoding/decoding and native async support for maximum throughput.

✨ Key Features

  • 🚀 High Performance — C++ core releases the GIL during heavy computation.
  • 📦 Metadata Excellence — Full support for EXIF, XMP, and JUMBF metadata.
  • Async-First — Native asyncio integration for non-blocking I/O.
  • 🖼️ NumPy Native — Directly encode from and decode to ndarray (RGB/RGBA).
  • 🔄 Lossless JPEG Transcoding — Bit-perfect JPEG ↔ JXL roundtrips.
  • 🎯 Thread-Safe — Persistent thread pools via context managers.

🛠️ Installation

Install from PyPI

# Recommended: Using uv
uv pip install pylibjxl

# Or via standard pip
pip install pylibjxl

Install from Source

uv pip install git+https://github.com/twn39/pylibjxl.git --recursive

Quick Start

🖼️ Basic In-Memory Operations

import numpy as np
import pylibjxl

# Create a test image (Height, Width, Channels)
image = np.random.randint(0, 256, (512, 512, 3), dtype=np.uint8)

# Encode to JXL bytes
data = pylibjxl.encode(image, effort=7, distance=1.0)

# Decode back to NumPy array
decoded = pylibjxl.decode(data)

💾 File I/O & Metadata

pylibjxl handles EXIF and XMP metadata seamlessly.

# Write an image with EXIF metadata
exif_data = b"Raw EXIF bytes..."
pylibjxl.write("output.jxl", image, effort=9, exif=exif_data)

# Read image and its metadata
img, meta = pylibjxl.read("output.jxl", metadata=True)
print(f"Loaded image shape: {img.shape}")
print(f"EXIF size: {len(meta.get('exif', b''))} bytes")

🔄 Lossless JPEG Transcoding

Reduce JPEG file size by ~20% without losing a single bit of information. The resulting .jxl can be restored to the exact original .jpg.

# Convert JPEG to JXL losslessly
pylibjxl.convert_jpeg_to_jxl("input.jpg", "input.jxl")

# Restore the bit-identical original JPEG
pylibjxl.convert_jxl_to_jpeg("input.jxl", "restored.jpg")

⚡ Async Support

High-performance non-blocking I/O for web servers and data pipelines.

import asyncio

async def main():
    # Async encoding
    data = await pylibjxl.encode_async(image, distance=0.0)
    
    # Async file reading
    img = await pylibjxl.read_async("input.jxl")

asyncio.run(main())

🏗️ Batch Processing (Context Manager)

Using the JXL context manager maintains a persistent thread pool, providing a significant speedup for batch operations.

# High-performance batch conversion
with pylibjxl.JXL(effort=7) as jxl:
    for i in range(100):
        img = jxl.read(f"input_{i}.jxl")
        # Process and save as high-quality JPEG
        jxl.write_jpeg(f"output_{i}.jpg", img, quality=95)

📈 Performance & Stability

pylibjxl is designed for high-throughput production environments:

  • GIL-Free: C++ core releases the Global Interpreter Lock during encoding/decoding, enabling true multi-core parallelism via Python's threading or asyncio.
  • Memory Efficient: Uses libjxl's internal memory management and pre-allocates buffers to minimize reallocations.
  • Stable Throughput: Benchmarks show consistent timing with very low jitter (Standard Deviation < 1ms for decoding) over thousands of operations.
  • Thread Pool Reuse: Using the JXL context manager prevents the overhead of creating/destroying thread pools for every operation, providing an additional ~15% speedup in batch processing.

Benchmark (1440x960 RGB)

Library Task Mean Time
pylibjxl JXL Encode (effort 3) 23.5 ms
pillow-jxl-plugin JXL Encode (speed 7) 96.7 ms
pylibjxl JXL Decode 10.8 ms
pillow-jxl-plugin JXL Decode 11.6 ms

[!NOTE] During benchmarking, we discovered that pillow-jxl-plugin's speed parameter appears to be ineffective: varying it does not change the encoding time or the output file size. In contrast, pylibjxl's effort parameter works correctly, providing a real trade-off between speed and compression.


📂 API Reference

🖼️ JXL In-Memory Operations

encode(input, effort=7, distance=1.0, lossless=False, *, exif=None, xmp=None, jumbf=None) -> bytes

async encode_async(...) -> bytes

Encodes a NumPy array into JPEG XL format.

Parameter Type Default Description
input ndarray required uint8 array of shape (H, W, 3) or (H, W, 4)
effort int 7 Speed/size tradeoff [1-10]. 1=fastest, 10=best compression.
distance float 1.0 Perceptual quality [0.0-25.0]. 0.0=lossless, 1.0=visually lossless.
lossless bool False If True, enables mathematical lossless mode.
exif bytes None Optional raw EXIF metadata.
xmp bytes None Optional raw XMP (XML) metadata.
jumbf bytes None Optional raw JUMBF metadata.
# Synchronous encoding
data = pylibjxl.encode(image, effort=9, lossless=True)

# Asynchronous encoding
data = await pylibjxl.encode_async(image, distance=0.5)

decode(data, *, metadata=False) -> ndarray | tuple[ndarray, dict]

async decode_async(...) -> ndarray | tuple[ndarray, dict]

Decodes JPEG XL bytes back into a NumPy array.

Parameter Type Default Description
data bytes required JPEG XL encoded bytes.
metadata bool False If True, returns a tuple including a metadata dictionary.
# Basic decode
img = pylibjxl.decode(jxl_bytes)

# Decode with metadata
img, meta = await pylibjxl.decode_async(jxl_bytes, metadata=True)
print(f"EXIF size: {len(meta.get('exif', b''))} bytes")

💾 JXL File I/O

read(path, *, metadata=False) / async read_async(...)

Reads a .jxl file from disk and decodes it.

Parameter Type Default Description
path `str Path` required
metadata bool False Whether to return metadata alongside the image.
img = pylibjxl.read("input.jxl")
img, meta = await pylibjxl.read_async("input.jxl", metadata=True)

write(path, image, ...) / async write_async(...)

Encodes a NumPy array and writes it directly to a .jxl file.

Parameter Type Default Description
path `str Path` required
image ndarray required The image data to encode.
... Supports all parameters from encode().
pylibjxl.write("output.jxl", image, effort=7, distance=1.0)
await pylibjxl.write_async("output.jxl", image, lossless=True)

📷 JPEG Support (libjpeg-turbo)

encode_jpeg(input, quality=95) -> bytes / async encode_jpeg_async(...)

Encodes a NumPy array to JPEG bytes using high-speed libjpeg-turbo.

Parameter Type Default Description
input ndarray required uint8 array of shape (H, W, 3).
quality int 95 JPEG quality factor [1-100].
jpeg_bytes = pylibjxl.encode_jpeg(image, quality=90)

decode_jpeg(data) -> ndarray / async decode_jpeg_async(...)

Decodes JPEG bytes to a NumPy RGB array.

Parameter Type Default Description
data bytes required JPEG encoded bytes.
image = pylibjxl.decode_jpeg(jpeg_bytes)

read_jpeg(path) / write_jpeg(path, image, quality=95)

Stand-alone JPEG file I/O operations using libjpeg-turbo.

img = pylibjxl.read_jpeg("photo.jpg")
pylibjxl.write_jpeg("output.jpg", img, quality=85)

🔄 Lossless Transcoding (JPEG ↔ JXL)

jpeg_to_jxl(data, effort=7) -> bytes / async jpeg_to_jxl_async(...)

Transcodes raw JPEG bytes into a JPEG XL container losslessly.

Parameter Type Default Description
data bytes required Original JPEG bytes.
effort int 7 Transcoding effort [1-10].
jxl_data = pylibjxl.jpeg_to_jxl(jpeg_bytes)

jxl_to_jpeg(data) -> bytes / async jxl_to_jpeg_async(...)

Restores the original JPEG bytes from a transcoded JXL file.

Parameter Type Default Description
data bytes required Transcoded JPEG XL bytes.
original_jpeg = pylibjxl.jxl_to_jpeg(jxl_data)

convert_jpeg_to_jxl(in_path, out_path) / convert_jxl_to_jpeg(...)

File-to-file versions of the above transcoding operations.

pylibjxl.convert_jpeg_to_jxl("input.jpg", "output.jxl")
pylibjxl.convert_jxl_to_jpeg("output.jxl", "restored.jpg")

🏗️ Context Managers

JXL(effort=7, distance=1.0, lossless=False)

AsyncJXL(...)

Sync and Async context managers that maintain a persistent thread pool.

Parameter Type Default Description
effort int 7 Default effort for operations.
distance float 1.0 Default distance for operations.
lossless bool False Default lossless mode.
with pylibjxl.JXL(effort=7) as jxl:
    # Uses persistent threads for all methods
    img = jxl.read("input.jxl")
    jxl.write("output.jxl", img, distance=0.5)

ℹ️ System Information

Function Return Type Description
version() dict Returns library version (major, minor, patch).
decoder_version() int Returns libjxl decoder version integer.
encoder_version() int Returns libjxl encoder version integer.
print(f"pylibjxl version: {pylibjxl.version()}")

📜 License

BSD 3-Clause License

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

pylibjxl-0.2.0.tar.gz (58.7 MB view details)

Uploaded Source

Built Distributions

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

pylibjxl-0.2.0-cp314-cp314-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.14Windows x86-64

pylibjxl-0.2.0-cp314-cp314-win32.whl (1.5 MB view details)

Uploaded CPython 3.14Windows x86

pylibjxl-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pylibjxl-0.2.0-cp314-cp314-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pylibjxl-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

pylibjxl-0.2.0-cp313-cp313-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.13Windows x86-64

pylibjxl-0.2.0-cp313-cp313-win32.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86

pylibjxl-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pylibjxl-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pylibjxl-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

pylibjxl-0.2.0-cp312-cp312-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86-64

pylibjxl-0.2.0-cp312-cp312-win32.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86

pylibjxl-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pylibjxl-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pylibjxl-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pylibjxl-0.2.0-cp311-cp311-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.11Windows x86-64

pylibjxl-0.2.0-cp311-cp311-win32.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86

pylibjxl-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pylibjxl-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pylibjxl-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file pylibjxl-0.2.0.tar.gz.

File metadata

  • Download URL: pylibjxl-0.2.0.tar.gz
  • Upload date:
  • Size: 58.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0.tar.gz
Algorithm Hash digest
SHA256 90d60f52ff0de2e898fd5c2f1f0ba0ed9b7d610878ced090cc4386ee957af78e
MD5 809ce6eb5ac10724e86ea07d1fc91e03
BLAKE2b-256 ba8aaa827e167cb1676fea2117c7807912e0cbe8a5d1bd6b12a427628990754c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0.tar.gz:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pylibjxl-0.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2150c7b9a06c06be073c4f671759d6e5fa19159e52b21e72d320f7f6ba4e63e9
MD5 cf928ae065c08cc0dcb5a860530f22ad
BLAKE2b-256 6479f7312430c39a9463cbc468f5f7bb83eacd7dae7ddf7d3c7964cb3756bcd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp314-cp314-win_amd64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp314-cp314-win32.whl.

File metadata

  • Download URL: pylibjxl-0.2.0-cp314-cp314-win32.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 9e320dd933ca5d59eb8f3571859d382e2ba6a1dfdbdb1c23e7fadf940f510cda
MD5 56623e38a1dc24f81930eae43a3841ad
BLAKE2b-256 f47d7a16763c3e82b84b39da497a8223b65f6a0fd0c357caa2b6b5a6c79bdd09

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp314-cp314-win32.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75c40e2bc25d479977593de36af6350e0a61ce536adf17426c54b1b7cab6058a
MD5 fe8138ca29f209e72f73c6437ee950fd
BLAKE2b-256 d91f94ba86f5d8360f9063bdf4b5a432da98d4a9277fb3e03fdec7bd94ea65f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73bb7352011e7b14b8fc68dade4d16771a8fb88db11ec42ae5dceac2b4c47a3c
MD5 4212e71d50fbfaa8a34903c31a203087
BLAKE2b-256 41c99e8164ec628af6c2ebecf8edf2a951c58f0b936699a1884297017ffbd94d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 65b5c1da1ea59da1a63d13f86341c89bd106343522284ce4fed8f392bf5cd434
MD5 3fb4965a785345c7d8eae445d777efa9
BLAKE2b-256 3466cdc9a076885b0041ca121abb3ca818e39d815e739fc7abbe1dde52cb1ffd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pylibjxl-0.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 15754faaf15b71084f4e7b9c89587458809c911c643f7331eacf46e96032d1dd
MD5 22af58225ebbebab89ec246996dfed65
BLAKE2b-256 60958947e1bafa75066667186c45c9e904b6547a6e555fc8feb2fcd14630be6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp313-cp313-win_amd64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp313-cp313-win32.whl.

File metadata

  • Download URL: pylibjxl-0.2.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 5ebde1f94fca5ce4b41f1b790620b7eb753e4b1c2b37fb2d21867f9e71d9f41f
MD5 4e5530e4165a08ed88bc4c0464000f8f
BLAKE2b-256 0e92460fb7cc3065ff78a5d29e84f5e1b6e1ab6ecd05d713e47456bc48f42b82

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp313-cp313-win32.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 edc62d941ccc911f735581479dee5d811e4cb222e1431098bdaad117f6750e58
MD5 6c5e6c90225a860e97acb680f35eb2a3
BLAKE2b-256 13753a44f42e3bcfe77472684a4cf1f88211b7dfbccb2ddb91dc8f4578fbb896

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c7da74e94079394ff2e7cee4d0e826df0b014158043fe5c6d4ef41343b64fe7
MD5 e2f09458a3f52b12512167c2ba82f1ac
BLAKE2b-256 ebf3cb87082ca23b048b52ebdf9a08046f5640dbeb606109a8f0033cb6c5d327

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e3f6c3d8438047a6fe6a5b638d822414fec73682a108c06e0c95d4ad865c25c0
MD5 8ff781fff7ae5bea6c5884572c0bb26f
BLAKE2b-256 015fac0392411c5f8cbf5ae16fc4d8e9156ba035c64cdfbf854a40e57e4eff72

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pylibjxl-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d1887e077e6b20d2d97bc7ef5b3322c13e592d0513c6f31562f23a74ccd8816c
MD5 20967541a4df4888638c5b59cf68bbf8
BLAKE2b-256 7723dae31705e853a35cbbb4568aabd5041fa4d758db0af17bfd8e8b86c93645

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp312-cp312-win_amd64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: pylibjxl-0.2.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 77c9fb00c72cbfea4c87cc3b19f4d93a1554ba16b9569953893cdfd378c84288
MD5 11f65d014ee53ac3c8b0c45c2e885585
BLAKE2b-256 9a206876d982b91a61afaca6238bb67674a137f36291bc5b85a5019814589327

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp312-cp312-win32.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac796cbbccedfaa2fe3d7296daeb4e5f945c1c451bede3e1a00ab59c17dcb547
MD5 0a98d2ca74cb87f2bbed531c31768f41
BLAKE2b-256 5c645aa2cffdff16201d2483c6aa96a2d7a8aa6a2441ade1f0209924978ba1c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c5d1521a9a16d1a9f488d16e1c999f50871888dea8e4d483092fb2695ed0d4a
MD5 536638ca801c9e97ab98c8e9424f7100
BLAKE2b-256 ac3273304bdfa5630de18fcc36f8eed1363cb25ec114567a5871e118355cf5c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3fbf4209d166f98e8b979af47f737412baa838d0cbd3e0ef084bd9d399cc7d29
MD5 6b21403b44b58b93dd7fa3d4b70c2c59
BLAKE2b-256 d7634d21ac8152d86875dc6db936551877645fe1c3482b54090d803a0bb6c450

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pylibjxl-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 727c5c0a97e9ca0f31eeb5c947c6e3e7ebdce79fa216109f5f137baa7d44f6d2
MD5 8b62fa5f6a9a02b52890bd026f84c42c
BLAKE2b-256 80c4f1b18be238de91a821c3a5f38263b419bd8c7d6bb78a159bc86c89160c74

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp311-cp311-win_amd64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: pylibjxl-0.2.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylibjxl-0.2.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 bfb8d4c588f9e5d4dbd6ee27a1e7d2336d31aca6bfca2b35d31e765bed6eab7b
MD5 9ca0e2a755227c4648f6b27ad834f514
BLAKE2b-256 fba314364d2928c100aee26f7cb9ee7b963eb7c6a6769335e5bbbbbdc15937b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp311-cp311-win32.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42f68fb8d84724e02b02549cef7a21ed4c677b8f3d8b58a918cdf19290e4003d
MD5 48301d5a4a01d3dfda9bd9625e3777dd
BLAKE2b-256 c0db6c495c2ab1b3a18d1b4ef23c65c14a53c1945e6aced58cdc5ff68ed57458

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a5a8f379d2c52eb1220f5ebc789cbbba820446030c17516033967a2959ce13c
MD5 d4ef9ebbc9d740c25beb880609975ed0
BLAKE2b-256 57b4e0319bdca25e3a0d210e9d2b2a804b5df322218d482a19d583c0461c108d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pylibjxl

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

File details

Details for the file pylibjxl-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pylibjxl-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d24f748b376f3d6b9d55e3fbe5322c97354c58b7611e46298070dfdc651b4284
MD5 be2dbabb631238bcd3fc809a2a21adf9
BLAKE2b-256 bee6b646815fedb7df4e294bae2dbb002a0c748b2eb708a2e9d9d9f32c07bd40

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylibjxl-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: build.yml on twn39/pylibjxl

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