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.

Related Pages

Free Compression and Archiving Libraries and Source Code

libarchive New

The libarchive library reads zip (including encrypted zip), tar (GNU tar, V7 tar, Solaris extended tar, etc), ar (GNU and BSD), RAR (with limitations), LHA, LZH, 7-Zip, Microsoft CAB, XAR, cpio (POSIX octet-oriented, SVR4 ASCII, binary), ISO9660 CD-ROM images (with or without Rockridge or Joliet extensions), etc. It can write/create archives in the following formats: ZIP, ISO9660, 7-Zip, XAR, shar, cpio (POSIX octet-oriented, SVR4 "newc"), tar (old GNU, V7, etc), and so on. It can even automatically handle archives that are uuencoded, or have an RPM wrapper, compressed with gzip, bzip2, lzma, lzip, lz4 (etc), and do the reverse when creating archives. The library is generally thread safe (except on platforms that don't provide thread-safe versions of key C library functions) but not thread-aware (it doesn't do any locking; you have to do it yourself). It does not support random access to the archive or in-place modification, since it processes the archive as a stream. Systems supported include POSIX-like systems like Linux, FreeBSD, Solaris, and so on, as well as Windows (with support for the compilers from Cygwin, MinGW and Visual Studio). The source code is released under the BSD licence.

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).

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.

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.

libmspack

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.

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.

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).

Unrarlib (Archiving and Compression)

[Update: according to their website, this project is now inactive.] This library allows you to read files from RAR archives (only the RAR2 format) 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.)

Related Pages

Newest Pages

Popular Pages

How to Link to This Page

It will appear on your page as:

Free Compression and Archiving Libraries and Source Code

 


 

thesitewizard.com: Free Webmaster Tutorials, Scripts and Articles

HowtoHaven.com: Free How-To Guides

thefreecountry.com: Free Programmers, Webmasters and Security Resources
If you find this site useful, please link to us.