plumers 1.0.2

Multi-format image library with first-class support for paletted images
Documentation
  • Coverage
  • 100%
    116 out of 116 items documented3 out of 57 items with examples
  • Size
  • Source code size: 143.88 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.72 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 27s Average build duration of successful builds.
  • all releases: 27s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • ISSOtm

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

builds.sr.ht status

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).