Differences between revisions 7 and 8
Revision 7 as of 2009-09-20 23:48:18
Size: 3269
Editor: localhost
Comment: converted to 1.6 markup
Revision 8 as of 2013-12-07 19:53:17
Size: 3373
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Compress is an API for working with the following files: tar, zip, bzip2, cpio, ar, gz, jar. Compress is an API for working with the various archiving and compression formats.
Line 6: Line 6:
*compress* is a stream based API. It's original code in this component came from Avalon's Excalibur, but originally from Ant, as far as life in Apache goes. It has migrated via: *compress* is a stream based API. Some of it's original code came from Avalon's Excalibur, but originally from Ant, as far as life in Apache goes. It has migrated via:
Line 15: Line 15:
Please note: Historical notes:
Line 20: Line 20:
Compress looks like moving to proper now and prepares for the first release. If you want to help, here is the CompressRoadmap. We're currenlty discussing a 2.0 API that fully embraces generics and tries to address a few pain points discovered over the years Compress 1.x has been around.
If you want to help, here is the CompressRoadmap.
Line 24: Line 25:
Archiver streams are: ZIP, CPIO, AR, TAR, JAR. Archiver streams are: ZIP, CPIO, AR, TAR, JAR, DUMP. 7z, ARJ.
Line 51: Line 52:
Same goes for Compressor. Compressor streams are: bz2 and gz. Same goes for Compressor. Compressor streams are: bz2, gz, lzma, xz, pack200, Z.

Component Overview

Compress is an API for working with the various archiving and compression formats.

Quick Start

*compress* is a stream based API. Some of it's original code came from Avalon's Excalibur, but originally from Ant, as far as life in Apache goes. It has migrated via: Ant -> Avalon-Excalibur -> Commons-IO -> Commons-Compress. More credits can be found in NOTICE.txt file.

*compress* divides the implementation in Compressors and Archivers. For each one an factory is implemented. Basically you have to get the stream implementation from the factory, create an entry, put this into the stream and stream.

Some experimental code makes it possible to modify archiver and compressor files. This means you can delete from for example a zip file.

Historical notes: There were discussion of "sponsoring" compress with code from TrueZip (https://truezip.dev.java.net/). The result was, not to include any code from this project (see mailinglists). There was a discussion about the complex file based implementation too. The result was to start again with a stream based implementation and move the old one to a branch. More information about the old implementation can be found on the CompressImplementationDetails page.

Roadmap

We're currenlty discussing a 2.0 API that fully embraces generics and tries to address a few pain points discovered over the years Compress 1.x has been around. If you want to help, here is the CompressRoadmap.

Archiver

To pack an archive, you have to get an archiver stream via the ArchiverFactory. Add your streams to the archiver and stream. Archiver streams are: ZIP, CPIO, AR, TAR, JAR, DUMP. 7z, ARJ.

Creating a ZIP-File

Unpacking a ZIP-File

Compressor

Same goes for Compressor. Compressor streams are: bz2, gz, lzma, xz, pack200, Z.

Compressing a file

Decompressing a file

FAQ

  • Add your questions/answers here.

Compress (last edited 2013-12-07 19:53:17 by StefanBodewig)