Repository navigation
feat(codecs): AVIF decoding on wasm32 through sqzer-rav1d - #40
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
vlad-salone
marked this pull request as ready for review
October 1, 2026 10:14
|
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
ADR-0011 action item 1: the AVIF decoder moves to
sqzer-rav1don every target, andwasm32gets AVIF decoding with it.What and why
re_rav1dwas archived in June and never built forwasm32.sqzer-rav1dis upstreamrav1dmainatd3d1cd6, which has the safe Rust API of upstream PR 1439 that no release carries, plus one commit: onwasm32the crate aliases itself aslibcand a 17-line file provides the names it uses there. Every other target keeps the reallibc. The library is still namedrav1d.In
sqzer-codecsthe decoder moves out of the non-wasm dependency table, thecfggates go, anddecode.rschanges its import, the error variant name and aVecto aBox<[u8]>.So a
wasm32build reads AVIF, takes a perceptual target for AVIF output and defaults to AVIF for photos.--list-codecsand--jsonname the decoderrav1d.The first push ran CI against the fork through a temporary git patch, before the crate was published: all six targets, native and portable, and
wasm32passed. The second commit drops the patch forsqzer-rav1d0.1.0 from crates.io.ADR-0011 item 1 is annotated, not ticked. The fix is offered upstream as memorysafety/rav1d#1505. Two parts are left: the AVIF fixtures in the wasm test, which arrives with item 3, and retiring the fork once an upstream release has the Rust API and that fix.
New dependencies
sqzer-rav1d0.1.0, BSD-2-Clause, in place ofre_rav1d0.1.3.strummoves from 0.26 to 0.27 with it.pasteis still pulled, so the advisory ignore stays.Checklist
CHANGELOG.mdhas an entry under## Unreleasedcargo fmt,cargo clippy --all-features,cargo test,cargo docandcargo deny checkpass locally🤖 Generated with Claude Code