Anyone want to speed up a PNG decoder?

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

Our great sponsors
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • JetBrains - Developer Ecosystem Survey 2022
  • Scout APM - Less time debugging, more time building
  • png-decoder

    A pure-Rust, no_std compatible PNG decoder

    I recently wrote a png-decoder for use in fontdue to parse emoji PNGs in a no_std context. I haven't yet put any effort into optimization, and from some basic benchmarks it seems the Wuffs implementation runs twice as fast.

  • image-png

    PNG decoding and encoding library in pure Rust

    I didn't get time to finish the full spec for my attempt at a PNG decoder but it was working on common cases and was faster than image-png at the time I suspect it's not the case anymore since it changes it's deflate crate usage. Here is the perf issue on the image crate My code was way simpler than the one in the image crate so that might still be worth a read if you are interested.

  • SonarLint

    Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.

  • thermite

    Thermite SIMD: Melt your CPU

    If I ever have the time to finish Thermite, I'd suggest that for this.

  • simd-adler32

    A SIMD-accelerated Adler-32 rolling hash algorithm implementation.

  • tiny-skia

    A tiny Skia subset ported to Rust

    I have a project called tiny-skia that uses SIMD heavily. The current AVX+SSE2 code is like 150KiB. Now add SSE2 and Scalar only versions and you can easily hit 300-500KiB. Not to mention the increased complexity.

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