Stm32-FatFs-Gzip
tinf
Stm32-FatFs-Gzip | tinf | |
---|---|---|
3 | 3 | |
18 | 142 | |
- | - | |
10.0 | 10.0 | |
over 1 year ago | over 1 year ago | |
C | C | |
Creative Commons Zero v1.0 Universal | zlib License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stm32-FatFs-Gzip
tinf
-
Hello, PNG
CRC is a table and 5 lines of code. That's trivial.
>zlib is 23k lines
It's not needed to make a PNG reader/writer. zlib is massive overkill for only making a PNG reader or writer. Here's a tiny deflate/inflate code [2] under 1k lines (and could be much smaller if needed).
stb[0] has single headers of ~7k lines total including all of the formats PNG, JPG, BMP,. PSD, GIF, HDR, and PIC. Here's [1] a 3k lines single file PNG version with tons if #ifdefs for all sorts of platforms. Removing those and I'd not be surprised if you could not do it in ~1k lines (which I'd consider quite simple compared to most of todays' media formats).
>Of course they're not common formats so you're stuck with complex formats like PNG
BMP is super common and easy to use anywhere.
I use flat image files all the time for quick and dirty stuff. They quickly saturate disk speeds and networking speeds (say recording a few decent speed cameras), and I've found PNG compression to alleviate those saturate CPU speeds (some libs are super slow, some are vastly faster). I've many times made custom compression formats to balance these for high performance tools when neither things like BMPs or things like PNG would suffice.
[0] https://github.com/nothings/stb
[1] https://github.com/richgel999/fpng/blob/main/src/fpng.cpp
[2] https://github.com/jibsen/tinf/tree/master/src
-
EzGz - An easy to use single header no dependency library for decompression of .gz archives written in modern C++ (probably faster than zlib)
Right now I'm using a C library (https://github.com/jibsen/tinf) due to size constraints. Adding a few hundred kB is prohibitive in that space.
What are some alternatives?
uzlib - Radically unbloated DEFLATE/zlib/gzip compression/decompression library. Can decompress any gzip/zlib data, and offers simplified compressor which produces gzip-compatible output, while requiring much less resources (and providing less compression ratio of course).
figlet-fonts - my collection of figlet / toilet ascii art fonts
nflate - Naive implementation of DEFLATE in C for decompressing gzip files (RFC 1951, RFC 1952).
canvas_ity - A tiny, single-header <canvas>-like 2D rasterizer for C++
zlib-ng - zlib replacement with optimizations for "next generation" systems. [Moved to: https://github.com/zlib-ng/zlib-ng]
libpng - LIBPNG: Portable Network Graphics support, official libpng repository
jdeflate - DEFLATE compressor/decompressor implementation
fpng - Super fast C++ .PNG writer/reader
compress - Optimized Go Compression Packages
UNITS - a compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies.
zlib-ng - zlib replacement with optimizations for "next generation" systems.
PNG-library - Easy, safe, flexible Java library to decode and encode PNG image files