nflate
infgen
nflate | infgen | |
---|---|---|
1 | 3 | |
2 | 203 | |
- | - | |
0.0 | 4.6 | |
over 3 years ago | 4 months ago | |
C | C | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
nflate
-
Decompressing a Gzip File by Hand
Programming a gzip (deflate) decompressor is a really good learning project. I did it last year, ultimately producing a pretty poor but working implementation [0]. I ended up modifying Mark Adler's puff example program to see the intermediary tables it produces to help debug my own implementation. I wish I had known about infgen (also by Adler). The other resource I would recommend, beyond the official specs is this article by Joshua Davies[1], also mentioned in the original post here.
[0]: https://github.com/davecom/nflate
infgen
- Infgen: A Deflate Stream Disassembler
-
Decompressing a Gzip File by Hand
For anyone looking to write their own Deflate/Gzip/Zlib, I would recommend looking at the little program called `infgen`:
> infgen is a deflate stream disassembler. It will read a gzip, zlib, or raw deflate stream, and output a readable description of the contents.
1. https://github.com/madler/infgen
-
Memory usage by DEFLATE algorithm
Back references in DEFLATE can go across blocks, so blocks can not, in general, be decoded independently from each other. And you need to decode a block anyways to know where the next will start. If you want to inspect DEFLATE streams, infgen might help you.
What are some alternatives?
Stm32-FatFs-Gzip - This project offers a simplified compressor that produces Gzip-compatible output with small resources for microcontrollers and edge computers. He uses the very basic LZ77 compression algorithm and static Deflate Huffman tree encoding to compress / decompress data into Gzip files.
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).
minlzma - The Minimal LZMA (minlzma) project aims to provide a minimalistic, cross-platform, highly commented, standards-compliant C library (minlzlib) for decompressing LZMA2-encapsulated compressed data in LZMA format within an XZ container, as can be generated with Python 3.6, 7-zip, and xzutils
tinf - Tiny inflate library (inflate, gzip, zlib)
zlib-ng - zlib replacement with optimizations for "next generation" systems.
dichotomic-compression - Image compression algorithm, developed for research and educational purposes