Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge. Learn more →
Top 7 C Deflate Projects
-
Project mention: Show HN: Pzip- blazing fast concurrent zip archiver and extractor | news.ycombinator.com | 2023-09-24
Please note that allowing for 2% bigger resulting file could mean huge speedup in these circumstances even with the same compression routines, seeing these benchmarks of zlib and zlib-ng for different compression levels:
https://github.com/zlib-ng/zlib-ng/discussions/871
IMO the fair comparison of the real speed improvement brought by a new program is only between the almost identical resulting compressed sizes.
-
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).
This GitHub repo might have something that works https://github.com/pfalcon/uzlib , according to the author, the compression ratio isn't very high
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
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
-
-
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.
-
-
-
Onboard AI
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
C Deflate related posts
- Show HN: Pzip- blazing fast concurrent zip archiver and extractor
- Introducing zune-inflate: The fastest Rust implementation of gzip/Zlib/DEFLATE
- GZIP Compression into Embedded systems
- Zlib Critical Vulnerability
- Computing Adler32 Checksums at 41 GB/s
- Re: Zlib memory corruption on deflate (i.e. compress)
- Zlib – a spiffy yet delicately unobtrusive compression library
-
A note from our sponsor - InfluxDB
www.influxdata.com | 11 Dec 2023
Index
What are some of the best open-source Deflate projects in C? This list will help you:
Project | Stars | |
---|---|---|
1 | zlib-ng | 1,368 |
2 | uzlib | 264 |
3 | tinf | 135 |
4 | fast_zlib | 131 |
5 | Stm32-FatFs-Gzip | 15 |
6 | nflate | 2 |
7 | jdeflate | 1 |