A pure-Rust, no_std compatible PNG decoder (by bschwind)


Basic png-decoder repo stats
19 days ago

bschwind/png-decoder is an open source project licensed under MIT License which is an OSI approved license.

Png-decoder Alternatives

Similar projects and alternatives to png-decoder

  • GitHub repo wuffs

    Wrangling Untrusted File Formats Safely

  • GitHub repo smhasher

    Hash function quality and speed tests

  • GitHub repo image-png

    PNG decoding and encoding library in pure Rust

  • GitHub repo stb

    stb single-file public domain libraries for C/C++

  • GitHub repo Halide

    a language for fast, portable data-parallel computation

  • GitHub repo ivory

    The Ivory EDSL

  • GitHub repo tiny-skia

    A tiny Skia subset ported to Rust

  • GitHub repo Compiler

  • GitHub repo thermite

    Thermite SIMD: Melt your CPU

  • GitHub repo ableC

    Attribute grammar Based Language Extensions for C

  • GitHub repo simd-adler32

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

NOTE: The number of mentions on this list indicates mentions on common posts. Hence, a higher number means a better png-decoder alternative or higher similarity.


Posts where png-decoder has been mentioned. We have used some of these posts to build our list of alternatives and similar projects - the last one was on 2021-04-07.
  • Anyone want to speed up a PNG decoder? | 2021-04-07
    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. | 2021-04-07
    Just sent a pull request to fix that issue (
  • The Fastest, Safest PNG Decoder in the World | 2021-04-06
    I recently wrote a Rust PNG decoder mostly for use in no_std contexts, and it was motivated out of wanting to decode emoji for a font rasterizer.

    I didn't really put any effort into optimizing it yet, though it does use miniz_oxide and it decompresses the entire image at once instead of per-scanline.

    I'm curious if it is at all competitive with the Wuffs decoder, I'm guessing probably not because I haven't put any effort into using SIMD.

    But overall the implementation was pretty straightforward, I just read the RFC and wrote it out over a few weeks. One quirk of my library currently is it always returns an RGBA buffer, instead of potentially letting you save memory on a grayscale or RGB image. | 2021-04-06