All Projects → vasi → Pixz

vasi / Pixz

Licence: bsd-2-clause
Parallel, indexed xz compressor

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Pixz

Ngx Dnd
🕶 Drag, Drop and Sorting Library for Angular2 and beyond!
Stars: ✭ 511 (-1.35%)
Mutual labels:  hacktoberfest
Imagesharp
📷 A modern, cross-platform, 2D Graphics library for .NET
Stars: ✭ 5,186 (+901.16%)
Mutual labels:  hacktoberfest
Guide
The official guide for discord.js, created and maintained by core members of its community
Stars: ✭ 512 (-1.16%)
Mutual labels:  hacktoberfest
Hacktoberfest
Hacktoberfest - App to manage the annual open source challenge.
Stars: ✭ 512 (-1.16%)
Mutual labels:  hacktoberfest
Hackers
Hackers is an elegant iOS app for reading Hacker News written in Swift.
Stars: ✭ 513 (-0.97%)
Mutual labels:  hacktoberfest
Octolinker
OctoLinker — Links together, what belongs together
Stars: ✭ 4,853 (+836.87%)
Mutual labels:  hacktoberfest
State Machine Cat
write beautiful state charts 🙀
Stars: ✭ 509 (-1.74%)
Mutual labels:  hacktoberfest
Space Nerds In Space
Multi-player spaceship bridge simulator. Captain your starship through adventures with your friends. See https://smcameron.github.io/space-nerds-in-space
Stars: ✭ 516 (-0.39%)
Mutual labels:  hacktoberfest
Uno
Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
Stars: ✭ 6,029 (+1063.9%)
Mutual labels:  hacktoberfest
Devjoke
#DevJoke. Submit a PR if you know a good dev joke.
Stars: ✭ 516 (-0.39%)
Mutual labels:  hacktoberfest
Yopass
Secure sharing for secrets, passwords and files
Stars: ✭ 511 (-1.35%)
Mutual labels:  hacktoberfest
Topydo
A powerful todo list application for the console, using the todo.txt format.
Stars: ✭ 511 (-1.35%)
Mutual labels:  hacktoberfest
Messagekit
A community-driven replacement for JSQMessagesViewController
Stars: ✭ 5,036 (+872.2%)
Mutual labels:  hacktoberfest
Flex
The minimalist Pelican theme.
Stars: ✭ 510 (-1.54%)
Mutual labels:  hacktoberfest
Jsep
JavaScript Expression Parser
Stars: ✭ 515 (-0.58%)
Mutual labels:  hacktoberfest
Astroquery
Functions and classes to access online data resources. Maintainers: @keflavich and @bsipocz and @ceb8
Stars: ✭ 510 (-1.54%)
Mutual labels:  hacktoberfest
Telethon
Pure Python 3 MTProto API Telegram client library, for bots too!
Stars: ✭ 5,805 (+1020.66%)
Mutual labels:  hacktoberfest
Teresa
Open source tool to deploy apps to Kubernetes clusters
Stars: ✭ 517 (-0.19%)
Mutual labels:  hacktoberfest
Indy Sdk
Everything needed to build applications that interact with an Indy distributed identity ledger.
Stars: ✭ 516 (-0.39%)
Mutual labels:  hacktoberfest
Sentry Symfony
The official Symfony SDK for Sentry (sentry.io)
Stars: ✭ 515 (-0.58%)
Mutual labels:  hacktoberfest

pixz

Build Status

Pixz (pronounced pixie) is a parallel, indexing version of xz.

Repository: https://github.com/vasi/pixz

Downloads: https://github.com/vasi/pixz/releases

pixz vs xz

The existing XZ Utils provide great compression in the .xz file format, but they produce just one big block of compressed data. Pixz instead produces a collection of smaller blocks which makes random access to the original data possible. This is especially useful for large tarballs.

Differences to xz

  • pixz automatically indexes tarballs during compression
  • pixz supports parallel decompression, which xz does not
  • pixz defaults to using all available CPU cores, while xz defaults to using only one core
  • pixz provides -i and -o command line options to specify input and output file
  • pixz does not support the command line option -z or --compress
  • pixz does not support the command line option -c or --stdout
  • -f command line option is incompatible
  • -l command line option output differs
  • -q command line option is incompatible
  • -t command line option is incompatible

Building pixz

General help about the building process's configuration step can be acquired via:

./configure --help

Dependencies

  • pthreads
  • liblzma 4.999.9-beta-212 or later (from the xz distribution)
  • libarchive 2.8 or later
  • AsciiDoc to generate the man page

Build from Release Tarball

./configure
make
make install

You many need sudo permissions to run make install.

Build from GitHub

git clone https://github.com/vasi/pixz.git
cd pixz
./autogen.sh
./configure
make
make install

You many need sudo permissions to run make install.

Usage

Single Files

Compress a single file (no tarball, just compression), multi-core:

pixz bar bar.xz

Decompress it, multi-core:

pixz -d bar.xz bar

Tarballs

Compress and index a tarball, multi-core:

pixz foo.tar foo.tpxz

Very quickly list the contents of the compressed tarball:

pixz -l foo.tpxz

Decompress the tarball, multi-core:

pixz -d foo.tpxz foo.tar

Very quickly extract a single file, multi-core, also verifies that contents match index:

pixz -x dir/file < foo.tpxz | tar x

Create a tarball using pixz for multi-core compression:

tar -Ipixz -cf foo.tpxz foo/

Specifying Input and Output

These are the same (also work for -x, -d and -l as well):

pixz foo.tar foo.tpxz
pixz < foo.tar > foo.tpxz
pixz -i foo.tar -o foo.tpxz

Extract the files from foo.tpxz into foo.tar:

pixz -x -i foo.tpxz -o foo.tar file1 file2 ...

Compress to foo.tpxz, removing the original:

pixz foo.tar

Extract to foo.tar, removing the original:

pixz -d foo.tpxz

Other Flags

Faster, worse compression:

pixz -1 foo.tar

Better, slower compression:

pixz -9 foo.tar

Use exactly 2 threads:

pixz -p 2 foo.tar

Compress, but do not treat it as a tarball, i.e. do not index it:

pixz -t foo.tar

Decompress, but do not check that contents match index:

pixz -d -t foo.tpxz

List the xz blocks instead of files:

pixz -l -t foo.tpxz

For even more tuning flags, check the manual page:

man pixz

Comparison to other Tools

plzip

  • about equally complex and efficient
  • lzip format seems less-used
  • version 1 is theoretically indexable, I think

ChopZip

  • written in Python, much simpler
  • more flexible, supports arbitrary compression programs
  • uses streams instead of blocks, not indexable
  • splits input and then combines output, much higher disk usage

pxz

  • simpler code
  • uses OpenMP instead of pthreads
  • uses streams instead of blocks, not indexable
  • uses temporary files and does not combine them until the whole file is compressed, high disk and memory usage

pbzip2

  • not indexable
  • appears slow
  • bzip2 algorithm is non-ideal

pigz

  • not indexable

dictzip, idzip

  • not parallel
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].