Free Compression and Archiving Libraries
Add the ability to compress, decompress and archive to your applications
Free Compression and Archiving Libraries and Source Code
This page lists free compression and archiving source code, libraries, DLLs, VCLs, components, etc, that you can include in your applications in order to give it the capability to compress and decompress files, archive and extract files, etc.
Note: if you are looking for complete applications, that is free archivers and compression utilities, you should check out the Free File Archivers and File Compression Utilities page instead.
Free Compression and Archiving Libraries and Source Code
- Basic Compression Library
This library includes implementations of a number of well-known lossless compression algorithms, namely, RLE (Run Length Encoding), Shannon-Fano, Huffman, Rice and Lempel-Ziv (LZ77). Encoder and decoder functions exist for each of these algorithms, and they work on memory buffers that your main application allocates prior to calling those functions (that is, they do not do any external file I/O nor allocate any memory themselves). The library is open source, written in C, and released under the zlib/libpng licence (a very liberal open source licence) (or "license" if you use a different variant of English).
- TurboPower Abbrevia
TurboPower's Abbrevia allows your applications to handle various industry standard compression and archiving methods - PKZIP (including PKZIP4), Microsoft CAB, tar, and gzip. There are CLX, VCL and COM components, allowing you to use it with Delphi (Windows), Kylix (Linux), C++Builder and any tool that can interface with COM objects (such as Microsoft Visual Basic, etc). The components also support ZIP files that span multiple archive files, self-extracting ZIP files, comments in ZIP files, integrity checks on ZIP files, etc.
libmspack is a library that allows your programs to handle the compression and decompression of various archives used by Microsoft in its programs (ie, it handles the file formats used by compress.exe, Microsoft Help, Microsoft Cabinet (CAB), HTML Help, Microsoft eBook). The library is licensed under the GNU LGPL. I'm not sure how portable the library is, but since its distribution package (at the time I write this) is a gzipped tar ball (ie, *.tar.gz), I assume it at least works under some Unix system or clone.
- Unrarlib (Archiving and Compression)
This library allows you to read files from RAR archives created with RAR and WinRAR. It supports decompression and decryption, and the library code is statically linked with your application (no external DLLs). Supported operating systems include Win32, SunOS and Linux. It is available (at the time of this writing) under two licenses (at your option), the GNU GPL as well as another that allows you to integrate the library in your application without providing source code. (Update: as of October 2007, this project is inactive.)
- UCL Portable Lossless Compression Library
UCL is a portable lossless data compression library. It is available in ANSI C source code form under the GNU GPL. The author claims that the decompression is simple, extremely fast and requires no memory. The decompression code can be squeezed into 200 bytes of code. It looks like it is a good candidate if you are writing applications that must execute in tight memory conditions, and don't mind releasing the source code for your application (which is required by the GNU General Public License).
- Bzip2 Lossless Compression Library
Bzip2 is a portable, patent-free, lossless data compression program and library (libbzip2). The author claims that it runs on "practically every (32bit/64bit) platform in the known universe" (including of course Linux and Windows). It is based on the Burrows-Wheeler transform and comes with a BSD-style licence. Full source code is available, along with pre-compiled binaries for a number of operating systems.
- ZLIB Compression Library (PKZIP/GZIP Compression)
This is an excellent free C library that allows you to compress and decompress any buffer or file using the inflate/deflate method used by PKZIP, InfoZIP and others. As far as I can tell, you can use the code in the library freely in your programs without paying a cent in royalties. The library is apparently used in the Java archiver, jar. You can use this library on a large number of systems, including Win16, Win32, Linux, Unix, MSDOS, etc.
- Delphi Zip
Available at this site are DLL's, VCL's, examples and full source code for Borland's C++ Builder and Delphi that allows you to make PKZIP compatible ZIP archives from within your application. The source code is also available and licensed under the GNU LGPL. A port of this Windows library is planned (at the time of this writing) for the Linux/Kyrix platform as well.
- DjVuLibre Document and Image Compression Library
DjVu is a compression library specifically designed for images, digital documents and scanned documents. It was originally developed by AT&T. DjVuLibre is the open source implementation, released under GPL and includes various utilities (decoders, encoders, browser plugins, viewers). Precompiled binaries can be found for Linux, Irix and Solaris.
- LZO Compression Library
A compression library with source code released under the GNU General Public License. Its purported advantage over zlib (see elsewhere on this page) is that it is fast and has a small memory footprint. An even smaller memory footprint version, called miniLZO is also available, allowing you to include compression in your applications at the cost of a very small increase in executable size (about 6kb on an i386, according to the website).
How to Link to This Page
It will appear on your page as: