Socket
Socket
Sign inDemoInstall

archiver

Package Overview
Dependencies
0
Maintainers
1
Versions
83
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

archiver

Creates Archives (ZIP) via Node Streams.


Version published
Maintainers
1
Created

Package description

What is archiver?

The archiver npm package is a streaming interface for archive generation, allowing users to create and manage different types of compressed files programmatically. It supports formats like ZIP and TAR and can be used for tasks such as creating backups, delivering files in a compressed format, or bundling project assets.

What are archiver's main functionalities?

Creating ZIP archives

This code demonstrates how to create a ZIP file named 'example.zip' with a single file 'file.txt' included. It sets the compression level to 9 using zlib.

const fs = require('fs');
const archiver = require('archiver');

const output = fs.createWriteStream('example.zip');
const archive = archiver('zip', { zlib: { level: 9 } });

output.on('close', function() {
  console.log(`Archive size: ${archive.pointer()} bytes`);
});

archive.pipe(output);
archive.append(fs.createReadStream('file.txt'), { name: 'file.txt' });
archive.finalize();

Creating TAR archives

This code snippet shows how to create a TAR file named 'example.tar' with gzip compression, including the file 'file.txt'.

const fs = require('fs');
const archiver = require('archiver');

const output = fs.createWriteStream('example.tar');
const archive = archiver('tar', { gzip: true });

output.on('close', function() {
  console.log(`Archive size: ${archive.pointer()} bytes`);
});

archive.pipe(output);
archive.append(fs.createReadStream('file.txt'), { name: 'file.txt' });
archive.finalize();

Appending multiple files and directories

This example demonstrates how to append multiple files and directories to a ZIP archive. It includes a single file, a directory, and all JavaScript files in the current directory using a glob pattern.

const fs = require('fs');
const archiver = require('archiver');

const output = fs.createWriteStream('example.zip');
const archive = archiver('zip');

archive.pipe(output);
archive.file('file1.txt', { name: 'file1.txt' });
archive.directory('subdir/', 'new-subdir');
archive.glob('*.js');
archive.finalize();

Other packages similar to archiver

Readme

Source

Archiver Build Status

Creates Archives (ZIP) via Node Streams. Depends on Node's build-in zlib module for compression available since version 0.6.3.

Install

npm install archiver

You can also use npm install archiver@devel to test upcoming versions.

API

createZip(options)

Creates an Archiver ZIP object. Options are passed to zlib.

archive.addFile(inputStream, options, callback)

Adds a file to the Archiver stream. At this moment, options must contain name. If the store option is set to true, the file will be added uncompressed.

archive.finalize(callback(written))

Finalizes the Archiver stream. When everything is done, callback is called with the total number of bytes in the archive.

Example

var fs = require('fs');

var archiver = require('archiver');

var out = fs.createWriteStream('out.zip');
var zip = archiver.createZip({ level: 1 });

zip.pipe(out);

zip.addFile(fs.createReadStream('file1.js'), { name: 'file1.js' }, function() {
  zip.addFile(fs.createReadStream('file2.js'), { name: 'file2.js' }, function() {
    zip.finalize(function(written) { console.log(written + ' total bytes written'); });
  });
});

Contributing

see CONTRIBUTING

Changelog

see CHANGELOG

Credits

Originally inspired by Antoine van Wel's node-zipstream.

Keywords

FAQs

Last updated on 15 Nov 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc