gamut-riff 0.1.1

Resource Interchange File Format (RIFF) container utilities, used by the WebP container.
Documentation

gamut-riff

gamut-riff provides Resource Interchange File Format (RIFF) container utilities — the chunked container that WebP is built on.

Goals

Part of the gamut workspace, this crate exists to:

  • Own the WebP container, not the codec. It will read and write the RIFF chunk structure (RIFF/WEBP plus VP8 /VP8L/VP8X/ALPH/ANIM… chunks), leaving the VP8/VP8L bitstream to gamut-webp — mirroring how gamut-isobmff backs AVIF/HEIC.
  • Stay spec-faithful. Implemented clean-slate from the RIFF and WebP container specs (see ../../references/).
  • Stay memory-safe on hostile input. #![forbid(unsafe_code)].

Usage

gamut-riff exposes a RIFF chunk reader (RiffReader) and writer (RiffWriter), a FourCc type, and WebP-specific helpers (write_simple_lossless / write_simple_lossy, WebpChunkId). It is driven by gamut-webp; most consumers use it indirectly through that crate rather than directly.

Status

The simple-WebP container (RIFF/WEBP header + VP8 /VP8L chunk read/write) is implemented. Extended-WebP chunks (VP8X, ALPH, ANIM/ANMF, metadata) are tracked alongside the codec in gamut-webp/STATUS.md (section A).

Roadmap

  • RIFF chunk reader/writer for the simple-WebP case (RIFF/WEBP + VP8 /VP8L). — done
  • Extended WebP (VP8X) — in scope: alpha (ALPH) and metadata chunks (ICCP, EXIF, XMP ), read + write.
  • Animation (ANIM/ANMF) — out of scope (recognized FourCCs only). Multi-frame sequences sit outside the image-first charter; see gamut-webp/STATUS.md.

License

Licensed under either of MIT or Apache-2.0 at your option.