3 stable releases
1.0.2+v1.2 | Jun 20, 2024 |
---|---|
1.0.1+v1.2 | Jun 19, 2024 |
#49 in #image-encoding
24 downloads per month
Used in plumers
465KB
8K
SLoC
plumers
Rust wrapper (plumers
) and bindings (libplum-sys
) for libplum, an image (de)coding library.
Please report any issues on the ticket tracker, and contribute code to the repo!
Comparison to image
?
The good:
- Small (few dependencies)
- Upstream is fuzz-tested
- Supports the full JPEG standard, “including fractional subsampling, which nobody does!”
- Embedded colour palettes are a first-class feature
The bad:
- Not pure Rust, so some tooling doesn't work. For example, Miri
- Requires libclang to build
- Only supports GIF, BMP, PNG, APNG, JPEG, and PNM; and not any of the more fringe formats
Maintenance
Updating libplum
To avoid the crate's build requiring Git, Make, and Bash (something something Windows), the entirety of libplum's “distributable” (libplum.c
and libplum.h
) is included under libplum-sys/src
.
To update it, run cargo xtask update_libplum
; the version to which it is updated is what's specified the crate's version (the build metadata, to be precise).
Dependencies
~0–2.1MB
~43K SLoC