J2K 0.9.0 is the intentional breaking Metal API release.
Metal migration
- Replaces
metal-rs 0.33with the pinnedobjc2 0.6.4,objc2-foundation 0.3.2, andobjc2-metal 0.3.2stack acrossj2k-metal-support,j2k-metal,j2k-jpeg-metal, andj2k-transcode-metal. - Expert Metal APIs now expose idiomatic retained and borrowed objc2 protocol objects directly. There is no metal-rs compatibility layer.
- Removes the legacy
block 0.1.6patch and its repository exceptions. Existing Metal kernels and observable codec behavior are preserved. - Centralizes retained object ownership, command submission, buffer access, shared events, timing, capture, and resident-image lifetimes in
j2k-metal-support.
Decoder and accelerator work
- Extends the exact ISO/IEC 15444-4:2024 / ITU-T T.803 v3 evidence set to 160 selected Part 1 and HTJ2K Part 15 cases on macOS arm64, Linux x86-64, and Windows x86-64.
- Adds the same selected points to CUDA and Metal adapter-IUT reports, with explicit per-stage routing disclosure.
- Adds versioned classic and HT Annex D/F encoder evidence and benchmark-qualified HTJ2K accelerator routing.
Evidence
- Exact release SHA:
b197f01ab4b9271f1cbc36921755a5b9d588bd5a - Hosted validation
- CUDA and Metal full validation
- Protected crates.io publication
- Published
j2k 0.9.0crate - Full changelog
Attached JSON and Markdown reports are covered by SHA256SUMS. CUDA and Metal results are adapter-IUT evidence and must be read with their disclosed stage routes; neither result is device-native. T.803 evidence does not establish robustness, security, adoption, or performance.