Socket
Socket
Sign inDemoInstall

archiver

Package Overview
Dependencies
Maintainers
1
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

archiver

Creates Archives (ZIP) via Node Streams.


Version published
Weekly downloads
8.6M
decreased by-5.32%
Maintainers
1
Weekly downloads
 
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 v0.4.4 Build Status

Creates Archives (Zip, Tar) via Node Streams. Depends on Node's built-in zlib module for compression available since version 0.6.3.

Install

npm install archiver --save

You can also use npm install https://github.com/ctalkington/node-archiver/archive/master.tar.gz to test upcoming versions.

Core

Methods

Archiver(type, options)

Convenience alias for create.

create(type, options)

Creates an Archiver instance based on the type (ie zip/tar) passed.

Instance Methods

addFile(input, data, callback(err))

Alias of append for compatibility that will be removed down the road.

append(input, data, callback(err))

Appends a file to the instance. Input can be in the form of a text string, buffer, or stream. When the instance has received, processed, and emitted the input, the callback is fired.

finalize(callback(err, bytesWritten))

Finalizes the instance. When the instance's stream has finished emitting, the callback is fired.

Zip

Options

comment string

Sets the zip comment.

forceUTC boolean

If true, forces the file date and time to UTC. Helps with testing across timezones.

zlib object

Passed to node's zlib module to control compression. Options may vary by node version.

File Data

name string required

Sets the file name including internal path.

date string|Date

Sets the file date. This can be any valid date string or object. Defaults to current time in locale.

store boolean

If true, file contents will be stored without compression.

comment string

Sets the file comment.

Tar

Options

recordSize number

Sets the size (in bytes) of each record in a block, default is 512 (for advanced users only).

recordsPerBlock number

Sets the number of records in a block, default is 20 (for advanced users only).

File Data

name string required

Sets the file name including internal path.

date string|Date

Sets the file date. This can be any valid date string or object. Defaults to current time in locale.

Examples

Take a peek at the examples folder for a complete listing.

Contributing

see CONTRIBUTING.

Changelog

see CHANGELOG.

Credits

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

Licensing

This project's code is licensed under the MIT license. see LICENSE-MIT.

Keywords

FAQs

Package last updated on 08 Jun 2013

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
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc