Move libjxl and brotli to 'web' group dependencies #87
+60
−10
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.
Given that JPEG XL support has now shipped in Safari1 and is under consideration in both Firefox2 and Chromium3, I think it's time we move libjxl and brotli to the 'web' dependency group.
From a security standpoint, this should be acceptable. The fuzzers have uncovered only a few non-critical integer overflows related to saving float32 pixels, all of which have been reported upstream (and
VIPS_BLOCK_UNTRUSTEDwill block JXL load/save anyway).Resolves: #40.
Size diff of resultant
libvips-42.dllfile in the statically-linked x64 variant:Marked this PR as draft due to these TODO items:
vips-jxl.wasmdynamic module is only 2.3 MiB.We might be able to reduce binary size by disabling some Highway targets (e.g.Edit: Commit e4611be reduces the binary size increase from 5.6 MiB to 3.9 MiB.-DJPEGXL_ENABLE_HWY_AVX3_DL=OFF,-DJPEGXL_ENABLE_HWY_SSE2=OFF, etc.).Footnotes
https://webkit.org/blog/14445/webkit-features-in-safari-17-0/#:~:text=Images%20and%20video-,JPEG%20XL ↩
https://github.com/mozilla/standards-positions/pull/1064 ↩
https://groups.google.com/a/chromium.org/g/blink-dev/c/WjCKcBw219k/m/NmOyvMCCBAAJ ↩