Skip to content

Major beta release with archiving support

Pre-release
Pre-release
Compare
Choose a tag to compare
@moinakg moinakg released this 12 Jan 16:51
· 84 commits to master since this release

This is a major release featuring archiving support based on Libarchive. Advanced techniques are used to detect file types and use appropriate algorithms to compress better. Filters like PackJPG for Jpegs and Dispack for executables are used to improve compressability. A few heuristics help detect already compressed data and avoid costly compression steps. Archive entries are also sorted to cluster related content and achieve better compression. Data split boundaries for multiple parallel threads are determined from file type and rolling hash changes. Mmap and Zero-Copy techniques are used internally whenever possible to improve performance. Some optimizations have also been done to reduce memory usage. Usage has been simplified with most features automatically configured based on compression level.

With these changes Pcompress can act as a full fledged archiver, like tar or cpio and provide better compression ratios and better performance than the single-file compression mode. Pcompress compares very favourably with other leading archiver utilities.

NOTE: The attached binary build is a statically linked Linux build (Linux Mint) with minimal external dependencies.

Known Limitation: Listing archive contents (pcompress -d -i ...) has the overhead of decompressing (but not extracting) all data.