Miniz-single C source file deflate/inflate compression library with zlib-compatible API, zip

Source: Internet
Author: User

Miniz-single C source file deflate/inflate compression library with zlib-compatible API, ZIP Archive reading/writing, PNG writing-Google Project hosting

Miniz. C is a lossless, high performance data compression library in a single source file that implements the zlib (RFC 1950) and deflate (RFC 1951) compressed data format specification standards. it supports the most commonly used functions exported by the zlib library, but is a completely independent implementation so zlib's licensing requirements do not apply. miniz. C also contains simple to use functions for writing. PNG format image files and reading/writing/appending. ZIP format archives. miniz's compression speed has been tuned to be comparable to zlib's, and it also has a specialized real-time compressor function designed to compare well against fastlz/minilzo.

Features
  • Completely free (as in public domain), see unlicense.org.
  • A portable, single source file header file library written in plain C.
  • Easily tuned and trimmed down by grouping macros at the top of the source file.
  • A drop-in replacement for zlib's most used API's (tested in several open source projects that use zlib, such as libpng and libzip ).
  • Fills a single threaded performance. compression ratio gap between several popular real-time compressors and zlib. for example, at level 1, miniz. c compresses around und 5-9% better than minilzo, but is approx. 35% slower. at levels 2-9, miniz. C is designed to compare favorably against zlib's ratio and speed. see the miniz performance comparison page for example timings.
  • Not a block based Compressor: miniz. c fully supports stream based processing using a coroutine-style implementation. the zlib-style API functions can be called a single byte at a time if that's all you 've ve got.
  • Easy to use. the low-level compressor (tinfl) and decompressor (tdefl) have simple state structs which can be saved/restored as needed with simple memcpy's. the low-level codec API's don't use the heap in any way.
  • Entire Inflater (including optional zlib header parsing and Adler-32 checking) is implemented in a single function as a coroutine, which is separately available in a small (~ 550 line) source file: tinfl. c
  • A fairly complete (but totally optional) set. ZIP Archive manipulation and extraction API's. the archive functionality is intended to solve common problems encountered in embedded, mobile, or game development situations. (the archive API's are purposely just powerful enough to write an entire archiver given a bit of additional higher-level logic .)

I 've created a wiki page comparing the speed and compression ratio of miniz. c verses varous other open source codecs. miniz. c's compression ratio is very close to zlib's (sometimes better, or sometimes a small amount worse because it tends to output more blocks due to using less memory ), and is typically (but not always) Faster, even without any platform specific assembly language optimizations.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.