Skip to main content

Streaming, network-aware image codecs for scientific imaging (prototype: JPEG XL)

Project description

opencodecs

Tests Build wheels

Native, parallel-decode codecs for scientific imaging. One unified Codec / Reader / Writer API across compression streams, single images, multi-frame stacks, and chunked containers.

Built for fast modern storage (NVMe, 10 G NAS) where the bottleneck is codec dispatch and per-tile parallelism, not raw I/O bandwidth. Native implementations of every codec — no runtime delegation to imagecodecs — though we use its excellent test suite as a parity reference.

import opencodecs as oc

arr = oc.read("scan.czi")              # auto-detect by extension
arr = oc.read("photo.jxl")
arr = oc.read(blob)                    # auto-detect by magic bytes

oc.write("out.jxl", arr, lossless=True)
oc.write("out.zst", b"...payload...", level=10)

# Streaming reader for multi-frame / chunked formats
with oc.get_codec("czi").open(path) as r:
    print(r.shape, r.dtype, r.n_frames)
    for tile in r:                     # iter_frames
        ...
    tile5 = r[5]                       # random access

# Discovery
oc.list_codecs()                       # capability table
oc.has_codec("avif")

Codec capability matrix

All codecs below are native implementations linking against system or vendored C libraries. Build skips cleanly when an optional system library is missing — see INSTALL.md.

Compression (bytes → bytes)

Codec Encode Decode Backing library Extension
zstd system libzstd .zst
lz4 system liblz4 (frame) .lz4
brotli system libbrotli .br
blosc2 system c-blosc2 .b2
deflate system zlib .zlib

Single-image codecs

Codec Encode Decode Color Backing library Extension
qoi RGB / RGBA vendored qoi.h .qoi
bmp gray / RGB / RGBA pure Python+numpy .bmp, .dib
png gray / RGB / RGBA, 8/16-bit system libspng .png
jpeg gray / RGB libjpeg-turbo (TJ v3) .jpg, .jpeg
webp RGB / RGBA, lossy + lossless system libwebp .webp
jpeg2k gray / RGB / RGBA, 8/16-bit, lossless + lossy OpenJPEG .jp2, .j2k, .jpx, .jpc
avif RGB / RGBA, lossy + lossless (YUV444+identity) libavif .avif
heif RGB / RGBA, lossy (HEVC) libheif (+ aomenc) .heif, .heic
jxl gray / RGB / RGBA, P3, HDR, multi-frame vendored libjxl 0.11.2 .jxl

Multi-frame / chunked formats

Codec Decode Container Notes
jxl ISO BMFF (frame index) Streaming + parallel multi-frame decode
czi Zeiss ZISRAW mmap + parallel zstd; metadata accessor
hdf5 HDF5 Wraps h5py.Dataset

czi decodes types 0 (uncompressed) and 6 (ZSTDHDR) — the entire modern Zen archive. JPEG-XR sub-blocks (rare in 2022+ output) raise NotImplementedError; native jxrlib support is tracked for v0.2.

czi exposes reader.metadata_bytes and reader.metadata_xml as lazy zero-copy accessors so downstream parsers (e.g. hiprpy's Cython metadata_summary) can consume the XML without a bytes → str → bytes round trip.

zarr v3 codecs

opencodecs._zarr_codecs registers our compressors as zarr v3 BytesBytesCodecs:

import zarr
from opencodecs._zarr_codecs import OcZstd, OcLz4, OcBlosc2, OcBrotli, OcDeflate

z = zarr.create_array(
    store=..., shape=..., dtype=..., chunks=...,
    compressors=[OcZstd(level=10)],
    zarr_format=3,
)

Performance

Scientific microscopy CZI (66 MB, 14 sub-blocks of 2000×2000 uint16, ZSTDHDR), single-file warm cache:

Reader Mac M3 Threadripper x86_64
czifile (Python ref) 148 ms 414 ms
aicspylibczi (C++) 17 ms 140 ms
opencodecs 15 ms 46 ms

64-core Threadripper benefits dramatically more from parallel decode than the 12-core M3.

Pipeline benchmark (8 CZIs back-to-back, 795 MB total, NAS):

Reader Total Per-file Throughput
czifile 1603 ms 229 ms 0.50 GB/s
opencodecs 198 ms 22 ms 4.01 GB/s
aicspylibczi 191 ms 22 ms 4.16 GB/s

JXL multi-frame parallel decode on Mac arm64 (16-frame uint16 stack):

Approach Time
Sequential iter_frames 68 ms
decode_frames_parallel(n_workers=16) 24 ms (2.8×)

See docs/io_patterns.md for the lessons learned about coalesced I/O, mmap vs pread, persistent thread pools, and where parallelism actually pays off.

Public API

Top-level dispatch

oc.read(src, *, format=None, **opts) -> ndarray | bytes
oc.write(dest, data, *, format=None, **opts) -> bytes | None
oc.codec_for_path(path) -> Codec | None
oc.codec_for_bytes(head) -> Codec | None

src and dest accept paths, file-like objects, bytes, and memoryview / mmap slices (zero-copy through the codec).

Codec registry

oc.list_codecs() -> list[Codec]
oc.has_codec(name_or_alias) -> bool
oc.get_codec(name_or_alias) -> Codec

Codec interface

Each codec exposes:

codec.name            # "czi"
codec.file_extensions # (".czi",)
codec.has_native      # True for everything we ship
codec.can_encode / codec.can_decode
codec.multi_frame / codec.chunked / codec.streaming_decode / codec.parallel_decode
codec.supported_dtypes / codec.supports_color

codec.signature(head_bytes) -> bool
codec.encode(data, *, dest=None, **opts) -> bytes | None
codec.decode(src, **opts) -> ndarray | bytes
codec.open(src, **opts) -> Reader        # multi-frame / chunked

Reader interface (multi-frame / chunked)

reader.shape       # (n_frames, *frame_shape)
reader.dtype
reader.n_frames
reader.is_chunked  # True if [idx] random access works
reader.iter_frames()
reader.read()      # full eager decode
reader[idx]        # random access (chunked formats only)

CZI reader additionally exposes:

reader.entries                  # list[CziSubBlockEntry] — sub-block metadata
reader.metadata_bytes           # raw UTF-8 bytes (lazy + cached)
reader.metadata_xml             # decoded str (lazy + cached)
reader.subblock_metadata_bytes(i)

HDF5 reader additionally exposes:

reader.dataset_names            # all numeric datasets in the file
reader.select(name)             # switch to a different dataset

Install

See INSTALL.md for system dependencies per platform and build instructions, and docs/publishing.md for the wheel-publishing pipeline (TestPyPI / PyPI via Trusted Publishing). Short version:

# macOS
brew install jpeg-turbo webp libavif libheif openjpeg libtiff hdf5 c-blosc2

# Ubuntu / Debian
sudo apt install -y libturbojpeg0-dev libwebp-dev libavif-dev libheif-dev \
                    libopenjp2-7-dev libblosc2-dev libcharls-dev \
                    liblz4-dev libspng-dev libtiff-dev libhdf5-dev

# Build
cd opencodecs
pip install -e .
# or
python setup.py build_ext --inplace

The build skips cleanly for any system library that's missing — useful extensions still build, missing ones print a one-line notice.

libjxl 0.11.2 is vendored via bench/build_libjxl.sh (auto-builds + caches to ~/Library/Caches/opencodecs/libjxl/ on Mac, ~/.cache/opencodecs/libjxl/ on Linux). See INSTALL.md for the rationale (Homebrew/apt builds are 0.5-0.7× slower than a tuned -O3 + LTO build).

Status

  • Core API stable
  • 76 parity tests passing on Mac
  • 66 parity tests + 9 graceful skips on Linux x86_64 (Threadripper)
  • CZI native reader benchmarked against czifile + aicspylibczi
  • JXL native reader with frame-index parallel decode

What's not yet shipped:

  • Native JPEG-XR (jxrlib) — small minority of older CZI files only
  • Native LERC, JPEG-LS — no current users
  • Native TIFF parser — tifffile already wins on this hardware; not worth reimplementing. opencodecs.tifffile_patch provides an opt-in shim that reroutes tifffile's codec dispatch through opencodecs.
  • Wheels / PyPI release — install from source for now

License

BSD-3-Clause. Vendored components retain their original licenses (see 3rdparty/).

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

opencodecs-0.1.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

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

opencodecs-0.1.0-cp313-cp313-win_amd64.whl (17.9 MB view details)

Uploaded CPython 3.13Windows x86-64

opencodecs-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.3 MB view details)

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

opencodecs-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (15.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

opencodecs-0.1.0-cp313-cp313-macosx_15_0_arm64.whl (11.2 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

opencodecs-0.1.0-cp312-cp312-win_amd64.whl (17.9 MB view details)

Uploaded CPython 3.12Windows x86-64

opencodecs-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.4 MB view details)

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

opencodecs-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (15.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

opencodecs-0.1.0-cp312-cp312-macosx_15_0_arm64.whl (11.3 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

opencodecs-0.1.0-cp311-cp311-win_amd64.whl (17.9 MB view details)

Uploaded CPython 3.11Windows x86-64

opencodecs-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.4 MB view details)

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

opencodecs-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (15.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

opencodecs-0.1.0-cp311-cp311-macosx_15_0_arm64.whl (11.3 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

opencodecs-0.1.0-cp310-cp310-win_amd64.whl (17.9 MB view details)

Uploaded CPython 3.10Windows x86-64

opencodecs-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.0 MB view details)

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

opencodecs-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (15.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

opencodecs-0.1.0-cp310-cp310-macosx_15_0_arm64.whl (11.3 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for opencodecs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 769748f7d59039d9ba5e87eba910d8ad6e420e571527f8cf671d8d80f18c91ef
MD5 8d0d09fd53c4f62fe9e2f406b1839967
BLAKE2b-256 981ff79464031de9310fd6090c2bd2cdd3466fcda9d679b0ad5e26c8adf7f017

See more details on using hashes here.

Provenance

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

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

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

File metadata

  • Download URL: opencodecs-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 17.9 MB
  • 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 opencodecs-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 53d02a44b1895c9121384d9e0b7f07651a46c1085f492ca76189b5c48059cd5b
MD5 de231a12a19c8a3e72f4f5b61a1460b0
BLAKE2b-256 53a1157c5f8ad40c019a66d627da4344cd2d5ddd5d54950d5d18d92cfb9bfad4

See more details on using hashes here.

Provenance

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

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7a426c1a4109f303dacacd28d7686f71b2cf45bed65fa9c3e5948c3385d7f7f
MD5 7a9d6267aa5c6b4cb87f7ca236d5fac8
BLAKE2b-256 82a9d864ad58f49acf0345fd6793bc7b50a056ec1cb67f1748c2737fb3c837c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5a3bee37bf83056a7187a29ad1a18491106a53f5c947323b53a60f6f8aaae199
MD5 c323bbc5b0f02e96e74239f2d614f4fa
BLAKE2b-256 1e74a0ca5008efd9d6ea5be81eb77e12a85011e13650b0eb37d1d93630281c64

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 578706bd7121e8a0b5885fea691ddb03e1f06c6da8154bac0e6998a2f3c1f78d
MD5 53f4204ddc3d86d9b42fb9a7534eb7a1
BLAKE2b-256 02cc1c7f3e4f84f7557f18570214ca8afbb6fbc8c8a06e6bf9f80a266a3e6600

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

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

File metadata

  • Download URL: opencodecs-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 17.9 MB
  • 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 opencodecs-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 645cc19026f86c9d41558ea460982f06b1ba68c82ab2ed30b822e45004619b20
MD5 f719f20f23f23ff089e1a469d6107061
BLAKE2b-256 7dae70a3a70710c152e75ec275c6b8588136bbbef20576a3032670e15189957e

See more details on using hashes here.

Provenance

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

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b7efdc92218293b594cc0ed99792bb37ce3200e78f39375e96402e67a725855e
MD5 66c16e2af7cbd72d34e5573abf1b57d9
BLAKE2b-256 0f94dc763575e9dd5a92305ab63324cd5a0260943132c99c7627298641e196de

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 75f2117c1e02ca8d1567c5eff59a8048b05d76e7a2f1593b7c2d3cfbcb18d4a2
MD5 ae013ee850f4b365aafda2f31c1482a7
BLAKE2b-256 ef2c35b6ecf96d12de0fb8f318b94373b11cd932622b6286e51c7facb78728a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 bf2b28b4b4b865531dcabdb8c9e084303f5667355b100647200e474ea8e65e28
MD5 d3bd7c3e677e9c99da9de1d0141c33ec
BLAKE2b-256 6665fb6ba18c6d56fc44cc2c2426d1f8d705ffaf14957dabc8c793e94d608af0

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

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

File metadata

  • Download URL: opencodecs-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 17.9 MB
  • 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 opencodecs-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e4a824b8b69ef23176b93f107a746a0a6560327bcb4ed3d8f3fbcec081122c2d
MD5 4e8417b85db0a84514262b9c36ddb5c5
BLAKE2b-256 5dd5ca70f3f940598bee62d56ec8760bb175a2690d25101507cfc9a999a4921a

See more details on using hashes here.

Provenance

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

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e5f044b7b22ad96be1622b00ecdf2fefe3e6c9f03a0df2b9e4437574381eb8e
MD5 aa057ccced000b7d0e7eab50aae17001
BLAKE2b-256 53cf9e6c868b936f346ab2475728577acb04972ef341cc6f4a5fd2908b0abca3

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0874bc58f5514f500e38e11f9a0e78ddbf087a091d4e3d84a4a2b713e84cc246
MD5 c673dd7bf92afdcdb6c6002c1a8b59cb
BLAKE2b-256 71bb19778e057a2ff89f281c26558a7709f6def507a922bf727ba57b554f6f6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e313e521a5cef7d522f87e532cd33f5f51147627904afe03414ca8a4fd440614
MD5 ab75df95306a1c89f877fede533dd8ad
BLAKE2b-256 16793a846ced95b1087d5c3645c8bb046c1ad6a75c6258af97ed542216032a21

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

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

File metadata

  • Download URL: opencodecs-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 17.9 MB
  • 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 opencodecs-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a75a7bb4ed8040c4684814c75a734a8d8405f836acb305e9ee530014310c1e5a
MD5 12baea51f280503f9a9350d3f29609da
BLAKE2b-256 3bb676417a753dc4b43be9fb10511c35d9863a4a70f2deb7aaaa2076a97c7aeb

See more details on using hashes here.

Provenance

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

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5aaaffafbd7bb0e41049fafae5b1c914085704c36b30edf1520ffcebb34a7075
MD5 2cbb9dff054a53e7adaa07830e1ca495
BLAKE2b-256 2686ba32ecd11c97311923b27dcd8a1f458939a6a97710d2c7915631a8b8face

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cb54c304dcef662b7fcf8ec4ec66e454118109fe350a12fad28fb6ca752f0c0a
MD5 aa8a34d018582533bd924c6f4c8f0ab1
BLAKE2b-256 8b065cc6fa3e8e16cd4132d8ea14e574f35abc1a555060c3cebd72c251983e45

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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

File details

Details for the file opencodecs-0.1.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for opencodecs-0.1.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f410aaf20df8c722eec13f57c518ddb84e8d76e382a5af411634a095397c0cf7
MD5 0f058596293b2cbe6aeb46a46bc5161e
BLAKE2b-256 3ad5ee78e0844cfb27aa7b207bac0cc30e199672b724e7e788ac564fda36a853

See more details on using hashes here.

Provenance

The following attestation bundles were made for opencodecs-0.1.0-cp310-cp310-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on kevinjohncutler/opencodecs

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