Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 3 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,19 +71,9 @@ jobs:
# `image` crate; encode is pure-Rust gamut-avif), `heic` (pure-Rust
# gamut-heic container/pipeline — no system library; pixel decode goes
# through rawshift-hwdec, which `full`'s `hw` flag compiles as the
# no-backend stub until the platform backends land), `jxl-encode`
# no-backend stub until the platform backends land), and `jxl-encode`
# (builds libjxl hermetically through gamut-jxl-sys — cmake + clang for
# its bindings), and `jpeg-encode-jpegli-vendored` builds the vendored
# google/jpegli submodule the same way (cmake + clang).
- name: Check out jpegli build submodules
# Init the vendored google/jpegli submodule and only its build-time
# dependencies — the 111 MB `testdata` and `googletest` submodules are for
# jpegli's own tests, which we disable, so they are skipped.
run: |
git submodule update --init crates/rawshift-image/third_party/jpegli
git -C crates/rawshift-image/third_party/jpegli submodule update --init \
third_party/highway third_party/libjpeg-turbo third_party/skcms \
third_party/lcms third_party/libpng third_party/zlib third_party/sjpeg
# its bindings).
- name: Install system libraries
run: |
sudo apt-get update
Expand All @@ -94,7 +84,7 @@ jobs:
GH_TOKEN: ${{ github.token }}
- name: Generate standard format fixtures
run: cargo run -p rawshift-image --example generate_test_fixtures
- run: cargo test --workspace --features rawshift-image/full,rawshift-image/jpeg-encode-jpegli-vendored
- run: cargo test --workspace --features rawshift-image/full

image-only:
name: Build (image only)
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
layer (see `docs/SUPPORT.md`). HEIC pixel decode in `rawshift-image` now
works end-to-end on hardware through this backend.

### Changed

- *(image)* **breaking**: JPEG migrated to gamut-jpeg (pure Rust, baseline +
progressive both ways). Decode replaces `zune-jpeg` (`DecodeOptions::Jpeg`,
codec id `jpeg/gamut`; CMYK/YCCK conversion is bit-identical to the previous
backend); encode replaces `jpeg-encoder` **and** the entire jpegli stack
with one `EncodeOptions::Jpeg(JpegEncodeConfig)` exposing gamut's knobs
(quality, subsampling, progressive, restart interval, JFIF density).
JPEG EXIF/XMP/ICC now embed via the encoder and extract via
`gamut_jpeg::metadata` (JPEG metadata reads now also surface ICC + XMP);
`probe_standard_image` reads the JPEG header through `gamut_jpeg::info`.

### Removed

- *(image)* **breaking**: the `jpeg-decode-zune`, `jpeg-encode-jpeg-enc`,
`jpeg-encode-jpegli`, `jpeg-encode-jpegli-vendored`, and `container-embed`
features; the `zune-jpeg`, `jpeg-encoder`, and `img-parts` dependencies; the
vendored `google/jpegli` submodule and the cc/cmake/bindgen build-script
slice; `EncodeError::Jpeg`/`EncodeError::Jpegli`; `ExifContainer::Jpeg` and
the hand-rolled JPEG APP1 scanner (jpegli parity is tracked upstream:
gamut#19/#29/#30).

## [0.1.1](https://github.com/justin13888/rawshift/compare/v0.1.0...v0.1.1) - 2026-05-29

### Added
Expand Down
108 changes: 12 additions & 96 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ gamut-dng = { git = "https://github.com/justin13888/gamut", rev = "dde9f640ab02e
gamut-metadata = { git = "https://github.com/justin13888/gamut", rev = "dde9f640ab02ec9c3437c3f1181164f6e7c60151" }
gamut-xmp = { git = "https://github.com/justin13888/gamut", rev = "dde9f640ab02ec9c3437c3f1181164f6e7c60151" }
gamut-icc = { git = "https://github.com/justin13888/gamut", rev = "dde9f640ab02ec9c3437c3f1181164f6e7c60151" }
gamut-jpeg = { git = "https://github.com/justin13888/gamut", rev = "dde9f640ab02ec9c3437c3f1181164f6e7c60151" }
# default-features off: gamut-jxl defaults to decode+encode; rawshift's
# `jxl-decode` / `jxl-encode` features select the halves explicitly.
gamut-jxl = { git = "https://github.com/justin13888/gamut", rev = "dde9f640ab02ec9c3437c3f1181164f6e7c60151", default-features = false }
Expand Down
Loading