Archive-Tar-Stream
view release on metacpan or search on metacpan
Archive-Tar-Stream
This module was previously known as ME::TarStream and created
as part of the backup system at FastMail.FM a few years ago.
The first commit was Tue Feb 20 03:21:43 2007 +0000
RATIONALE
Why this instead of just using gnu tar, or any of the other
Archive:: packages? In a word, IO. Actually that's two
words if you unpack the acronym.
Unpacking a tar file in order to remove some parts and then
re-pack it causes a lot of IO. Particularly for the unlink
afterwards. Working in tmpfs is OK, until your files get
big.
We needed to repack incremental backups of up to 100Gb of
emails, one file per email. Starting with a .tar.gz, and
ending with a .tar.gz. Hence something that could sit in
a pipe like this:
zcat old.tar.gz | ./decider | gzip > new.tar.gz
INSTALLATION
To install this module, run the following commands:
lib/Archive/Tar/Stream.pm view on Meta::CPAN
Version 0.02
=cut
our $VERSION = '0.02';
=head1 SYNOPSIS
Archive::Tar::Stream grew from a requirement to process very large
archives containing email backups, where the IO hit for unpacking
a tar file, repacking parts of it, and then unlinking all the files
was prohibitive.
Archive::Tar::Stream takes two file handles, one purely for reads,
one purely for writes. It does no seeking, it just unpacks
individual records from the input filehandle, and packs records
to the output filehandle.
This module does not attempt to do any file handle management or
compression for you. External zcat and gzip are quite fast and
( run in 0.492 second using v1.01-cache-2.11-cpan-49f99fa48dc )