arcstream

Stream archive contents while extracting them

Usage no npm install needed!

<script type="module">
  import arcstream from 'https://cdn.skypack.dev/arcstream';
</script>

README

Arcstream

Arcstream streams the content of archive files while extracting them.

Install

$ npm install arcstream

Supported archive types

  • RAR
  • TAR
  • TGZ / TAR.GZ
  • BZ2 / TAR.BZ2

Examples

Extracting a multipart rar file

var ArcStream = require('arcstream'),
    archive = new ArcStream(),
    fs = require('fs');

// You can add only 1 or multiple files
archive.addFile(0, '/my/archive.part1.rar');
archive.addFile(1, '/my/archive.part2.rar');
archive.addFile(2, '/my/archive.part3.rar');
archive.addFile(3, '/my/archive.part4.rar');

archive.on('file', function onFile(filename, stream, arcfile) {

    // Print the filename (without any paths)
    console.log(filename);

    // Print the path this was in inside the archive (empty string is root)
    console.log(arcfile.directory);

    // Print the extension of this file (empty string is no extension)
    console.log(arcfile.extension);

    stream.pipe(fs.createWriteStream('/tmp/' + filename));
});

Extracting a tar file

var ArcStream = require('arcstream'),
    archive = new ArcStream(),
    fs = require('fs');

// Tar only allows 1 file
archive.addFile('/my/archive.tgz');

archive.on('file', function onFile(filename, stream, arcfile) {
    stream.pipe(fs.createWriteStream('/tmp/' + filename));
});