~issotm/plumers

Rust wrapper and bindings for libplum, an image handling library
c8a3afb4 — ISSOtm 5 months ago
Avoid forcing people to use Rust 1.73
efb4df3e — ISSOtm 5 months ago
Correct `no_oom` test
c94e47b3 — ISSOtm 5 months ago
Update bindgen dependency

clone

read-only
https://git.sr.ht/~issotm/plumers
read/write
git@git.sr.ht:~issotm/plumers

You can also use your local clone with git send-email.

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