This review is from Crev, a distributed system for code reviews. To add your review, set up cargo-crev.

The current version of GIFt is 0.10.6.

0.3.1 (older version) Rating: Neutral Thoroughness: Low Understanding: Medium

by niklasf on 2020-02-24

gift allows decoding and encoding gifs, providing lower level APIs around blocks and higher level abstractions.

The design (layers for blocks, frames and rasters) is quite elegant.

The crate does not use any unsafe code.

Before using the decoder on untrusted inputs more review/testing/fuzzing is required to prevent denial of service. For example the following quadratic blowup in image size would have been discovered by anyone using the decoder on more than tiny images: https://github.com/DougLau/gift/pull/3.

  • Issue: Medium (3)


Lib.rs has been able to verify that all files in the crate's tarball, except Cargo.lock, are in the crate's repository with a git tag matching the version. Please note that this check is still in beta, and absence of this confirmation does not mean that the files don't match.

Crates in the crates.io registry are tarball snapshots uploaded by crates' publishers. The registry is not using crates' git repositories, so there is a possibility that published crates have a misleading repository URL, or contain different code from the code in the repository.

To review the actual code of the crate, it's best to use cargo crev open gift. Alternatively, you can download the tarball of gift v0.10.6 or view the source online.