Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Blocked by:
jxl-oxide
makes use of thearray::each_mut
APIimage
crate URI and MIME support detection #5324jxl-oxide
v0.10 --> Git source then needs to be replacedRationale
The
image
crate maintainer has made it clear that they do not intend to support JXL at this time, and likely won't be in the future either, see: image-rs/image#1979For this reason, the
jxl-oxide
crate has just recently added support for theimage
crate format, see: tirr-c/jxl-oxide#162JXL is a leading format (with yes, much less adoption than others) including various features that make it a compelling option.
The eventual crate being worked on to be implemented in Chromium and Firefox is https://github.com/libjxl/jxl-rs, however,jxl-oxide
is an appropriate crate choice as it has a history of being very well maintained, and (at least a couple months ago?) is the likely pickup for Chromium and Firefox support in the next year or so. I've lost the source on this one, but remember either the Chromium or Firefox devs officially stating they were unwilling to merge the C library in, but suggested continuing this rust port.jxl-oxide
is still receiving active updates.This is also especially interesting to implement as it allows high quality jxl support through WASM, irrespective of browser jxl support (which is poor at the moment).
This PR is a draft untilv0.10 was released https://github.com/tirr-c/jxl-oxide/releases/tag/0.10.0jxl-oxide
's v0.10 release, which adds built-inimage
crate compatibility. The other linked PRs should also come first.Todo/Further Considerations
jxl-oxide
uses rayon optionally to speed up decode. Is it fine leaving this feature for the caller to specify in their own Cargo.toml? (similar to how theimage
crate features are currently set up)