png crate gets an ultrafast compression mode, up to 4x faster decompression

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • image

    Encoding and decoding images in Rust (by image-rs)

  • png is the de-facto standard Rust crate for reading and writing PNG images, used e.g. by the image crate.

  • image-png

    PNG decoding and encoding library in pure Rust

  • Encoding images to PNG with the "fast" compression mode is now an order of magnitude faster. This is achieved using a custom Zlib compression implementation that leverages assumptions about the patterns in PNG data to get reasonable compression ratios at phenomenal speeds.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • resvg

    An SVG rendering library.

  • For example, when converting vector SVG images to raster PNG images with resvg, most of the time is spent compressing the PNG image. This is a lot of wasted work if we just want to read the image instead of transferring it over the network! The fast compression mode eliminates all this wasted work, resulting in huge performance and efficiency gains.

  • fdeflate

    Fast deflate implementation specialized for PNG image data

  • The changes have been tested for regressions on 80,000 images, and the new Zlib implementation has been roundtrip-fuzzed to ensure correctness. The png crate as a whole also added roundtrip fuzzing. So we're quite confident in the correctness of these changes, but if you find anything amiss, please open an issue on Github.

  • fpng

    Super fast C++ .PNG writer/reader

  • When the QOI format was first announced it wasn't clear that was even possible while keeping PNG format compatibility. But the fpng and fpnge C/C++ libraries showed it was, and today you can take advantage of those advances in a general purpose PNG library in Rust!

  • fpnge

    Demo of a fast PNG encoder.

  • When the QOI format was first announced it wasn't clear that was even possible while keeping PNG format compatibility. But the fpng and fpnge C/C++ libraries showed it was, and today you can take advantage of those advances in a general purpose PNG library in Rust!

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts