Streaming, network-aware image codecs for scientific imaging (prototype: JPEG XL)
Project description
opencodecs
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 —
tifffilealready wins on this hardware; not worth reimplementing.opencodecs.tifffile_patchprovides 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
769748f7d59039d9ba5e87eba910d8ad6e420e571527f8cf671d8d80f18c91ef
|
|
| MD5 |
8d0d09fd53c4f62fe9e2f406b1839967
|
|
| BLAKE2b-256 |
981ff79464031de9310fd6090c2bd2cdd3466fcda9d679b0ad5e26c8adf7f017
|
Provenance
The following attestation bundles were made for opencodecs-0.1.0.tar.gz:
Publisher:
build_wheels.yml on kevinjohncutler/opencodecs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0.tar.gz -
Subject digest:
769748f7d59039d9ba5e87eba910d8ad6e420e571527f8cf671d8d80f18c91ef - Sigstore transparency entry: 1487415589
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53d02a44b1895c9121384d9e0b7f07651a46c1085f492ca76189b5c48059cd5b
|
|
| MD5 |
de231a12a19c8a3e72f4f5b61a1460b0
|
|
| BLAKE2b-256 |
53a1157c5f8ad40c019a66d627da4344cd2d5ddd5d54950d5d18d92cfb9bfad4
|
Provenance
The following attestation bundles were made for opencodecs-0.1.0-cp313-cp313-win_amd64.whl:
Publisher:
build_wheels.yml on kevinjohncutler/opencodecs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp313-cp313-win_amd64.whl -
Subject digest:
53d02a44b1895c9121384d9e0b7f07651a46c1085f492ca76189b5c48059cd5b - Sigstore transparency entry: 1487415721
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
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
- Download URL: opencodecs-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 16.3 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7a426c1a4109f303dacacd28d7686f71b2cf45bed65fa9c3e5948c3385d7f7f
|
|
| MD5 |
7a9d6267aa5c6b4cb87f7ca236d5fac8
|
|
| BLAKE2b-256 |
82a9d864ad58f49acf0345fd6793bc7b50a056ec1cb67f1748c2737fb3c837c1
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
a7a426c1a4109f303dacacd28d7686f71b2cf45bed65fa9c3e5948c3385d7f7f - Sigstore transparency entry: 1487415622
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
File details
Details for the file opencodecs-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: opencodecs-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a3bee37bf83056a7187a29ad1a18491106a53f5c947323b53a60f6f8aaae199
|
|
| MD5 |
c323bbc5b0f02e96e74239f2d614f4fa
|
|
| BLAKE2b-256 |
1e74a0ca5008efd9d6ea5be81eb77e12a85011e13650b0eb37d1d93630281c64
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
5a3bee37bf83056a7187a29ad1a18491106a53f5c947323b53a60f6f8aaae199 - Sigstore transparency entry: 1487415852
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
File details
Details for the file opencodecs-0.1.0-cp313-cp313-macosx_15_0_arm64.whl.
File metadata
- Download URL: opencodecs-0.1.0-cp313-cp313-macosx_15_0_arm64.whl
- Upload date:
- Size: 11.2 MB
- Tags: CPython 3.13, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
578706bd7121e8a0b5885fea691ddb03e1f06c6da8154bac0e6998a2f3c1f78d
|
|
| MD5 |
53f4204ddc3d86d9b42fb9a7534eb7a1
|
|
| BLAKE2b-256 |
02cc1c7f3e4f84f7557f18570214ca8afbb6fbc8c8a06e6bf9f80a266a3e6600
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp313-cp313-macosx_15_0_arm64.whl -
Subject digest:
578706bd7121e8a0b5885fea691ddb03e1f06c6da8154bac0e6998a2f3c1f78d - Sigstore transparency entry: 1487415649
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
645cc19026f86c9d41558ea460982f06b1ba68c82ab2ed30b822e45004619b20
|
|
| MD5 |
f719f20f23f23ff089e1a469d6107061
|
|
| BLAKE2b-256 |
7dae70a3a70710c152e75ec275c6b8588136bbbef20576a3032670e15189957e
|
Provenance
The following attestation bundles were made for opencodecs-0.1.0-cp312-cp312-win_amd64.whl:
Publisher:
build_wheels.yml on kevinjohncutler/opencodecs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp312-cp312-win_amd64.whl -
Subject digest:
645cc19026f86c9d41558ea460982f06b1ba68c82ab2ed30b822e45004619b20 - Sigstore transparency entry: 1487415871
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
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
- Download URL: opencodecs-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 16.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7efdc92218293b594cc0ed99792bb37ce3200e78f39375e96402e67a725855e
|
|
| MD5 |
66c16e2af7cbd72d34e5573abf1b57d9
|
|
| BLAKE2b-256 |
0f94dc763575e9dd5a92305ab63324cd5a0260943132c99c7627298641e196de
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
b7efdc92218293b594cc0ed99792bb37ce3200e78f39375e96402e67a725855e - Sigstore transparency entry: 1487415686
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
File details
Details for the file opencodecs-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: opencodecs-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75f2117c1e02ca8d1567c5eff59a8048b05d76e7a2f1593b7c2d3cfbcb18d4a2
|
|
| MD5 |
ae013ee850f4b365aafda2f31c1482a7
|
|
| BLAKE2b-256 |
ef2c35b6ecf96d12de0fb8f318b94373b11cd932622b6286e51c7facb78728a5
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
75f2117c1e02ca8d1567c5eff59a8048b05d76e7a2f1593b7c2d3cfbcb18d4a2 - Sigstore transparency entry: 1487415813
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
File details
Details for the file opencodecs-0.1.0-cp312-cp312-macosx_15_0_arm64.whl.
File metadata
- Download URL: opencodecs-0.1.0-cp312-cp312-macosx_15_0_arm64.whl
- Upload date:
- Size: 11.3 MB
- Tags: CPython 3.12, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf2b28b4b4b865531dcabdb8c9e084303f5667355b100647200e474ea8e65e28
|
|
| MD5 |
d3bd7c3e677e9c99da9de1d0141c33ec
|
|
| BLAKE2b-256 |
6665fb6ba18c6d56fc44cc2c2426d1f8d705ffaf14957dabc8c793e94d608af0
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp312-cp312-macosx_15_0_arm64.whl -
Subject digest:
bf2b28b4b4b865531dcabdb8c9e084303f5667355b100647200e474ea8e65e28 - Sigstore transparency entry: 1487415957
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4a824b8b69ef23176b93f107a746a0a6560327bcb4ed3d8f3fbcec081122c2d
|
|
| MD5 |
4e8417b85db0a84514262b9c36ddb5c5
|
|
| BLAKE2b-256 |
5dd5ca70f3f940598bee62d56ec8760bb175a2690d25101507cfc9a999a4921a
|
Provenance
The following attestation bundles were made for opencodecs-0.1.0-cp311-cp311-win_amd64.whl:
Publisher:
build_wheels.yml on kevinjohncutler/opencodecs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp311-cp311-win_amd64.whl -
Subject digest:
e4a824b8b69ef23176b93f107a746a0a6560327bcb4ed3d8f3fbcec081122c2d - Sigstore transparency entry: 1487415898
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
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
- Download URL: opencodecs-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 16.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e5f044b7b22ad96be1622b00ecdf2fefe3e6c9f03a0df2b9e4437574381eb8e
|
|
| MD5 |
aa057ccced000b7d0e7eab50aae17001
|
|
| BLAKE2b-256 |
53cf9e6c868b936f346ab2475728577acb04972ef341cc6f4a5fd2908b0abca3
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
8e5f044b7b22ad96be1622b00ecdf2fefe3e6c9f03a0df2b9e4437574381eb8e - Sigstore transparency entry: 1487415839
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
File details
Details for the file opencodecs-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: opencodecs-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0874bc58f5514f500e38e11f9a0e78ddbf087a091d4e3d84a4a2b713e84cc246
|
|
| MD5 |
c673dd7bf92afdcdb6c6002c1a8b59cb
|
|
| BLAKE2b-256 |
71bb19778e057a2ff89f281c26558a7709f6def507a922bf727ba57b554f6f6b
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
0874bc58f5514f500e38e11f9a0e78ddbf087a091d4e3d84a4a2b713e84cc246 - Sigstore transparency entry: 1487415750
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
File details
Details for the file opencodecs-0.1.0-cp311-cp311-macosx_15_0_arm64.whl.
File metadata
- Download URL: opencodecs-0.1.0-cp311-cp311-macosx_15_0_arm64.whl
- Upload date:
- Size: 11.3 MB
- Tags: CPython 3.11, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e313e521a5cef7d522f87e532cd33f5f51147627904afe03414ca8a4fd440614
|
|
| MD5 |
ab75df95306a1c89f877fede533dd8ad
|
|
| BLAKE2b-256 |
16793a846ced95b1087d5c3645c8bb046c1ad6a75c6258af97ed542216032a21
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp311-cp311-macosx_15_0_arm64.whl -
Subject digest:
e313e521a5cef7d522f87e532cd33f5f51147627904afe03414ca8a4fd440614 - Sigstore transparency entry: 1487415999
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a75a7bb4ed8040c4684814c75a734a8d8405f836acb305e9ee530014310c1e5a
|
|
| MD5 |
12baea51f280503f9a9350d3f29609da
|
|
| BLAKE2b-256 |
3bb676417a753dc4b43be9fb10511c35d9863a4a70f2deb7aaaa2076a97c7aeb
|
Provenance
The following attestation bundles were made for opencodecs-0.1.0-cp310-cp310-win_amd64.whl:
Publisher:
build_wheels.yml on kevinjohncutler/opencodecs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp310-cp310-win_amd64.whl -
Subject digest:
a75a7bb4ed8040c4684814c75a734a8d8405f836acb305e9ee530014310c1e5a - Sigstore transparency entry: 1487415784
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
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
- Download URL: opencodecs-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 16.0 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5aaaffafbd7bb0e41049fafae5b1c914085704c36b30edf1520ffcebb34a7075
|
|
| MD5 |
2cbb9dff054a53e7adaa07830e1ca495
|
|
| BLAKE2b-256 |
2686ba32ecd11c97311923b27dcd8a1f458939a6a97710d2c7915631a8b8face
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
5aaaffafbd7bb0e41049fafae5b1c914085704c36b30edf1520ffcebb34a7075 - Sigstore transparency entry: 1487415930
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
File details
Details for the file opencodecs-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: opencodecs-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.0 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb54c304dcef662b7fcf8ec4ec66e454118109fe350a12fad28fb6ca752f0c0a
|
|
| MD5 |
aa8a34d018582533bd924c6f4c8f0ab1
|
|
| BLAKE2b-256 |
8b065cc6fa3e8e16cd4132d8ea14e574f35abc1a555060c3cebd72c251983e45
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
cb54c304dcef662b7fcf8ec4ec66e454118109fe350a12fad28fb6ca752f0c0a - Sigstore transparency entry: 1487415766
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type:
File details
Details for the file opencodecs-0.1.0-cp310-cp310-macosx_15_0_arm64.whl.
File metadata
- Download URL: opencodecs-0.1.0-cp310-cp310-macosx_15_0_arm64.whl
- Upload date:
- Size: 11.3 MB
- Tags: CPython 3.10, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f410aaf20df8c722eec13f57c518ddb84e8d76e382a5af411634a095397c0cf7
|
|
| MD5 |
0f058596293b2cbe6aeb46a46bc5161e
|
|
| BLAKE2b-256 |
3ad5ee78e0844cfb27aa7b207bac0cc30e199672b724e7e788ac564fda36a853
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opencodecs-0.1.0-cp310-cp310-macosx_15_0_arm64.whl -
Subject digest:
f410aaf20df8c722eec13f57c518ddb84e8d76e382a5af411634a095397c0cf7 - Sigstore transparency entry: 1487416059
- Sigstore integration time:
-
Permalink:
kevinjohncutler/opencodecs@af685ebaddaa1b5705ca310410db65e3cb070138 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevinjohncutler
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_wheels.yml@af685ebaddaa1b5705ca310410db65e3cb070138 -
Trigger Event:
push
-
Statement type: