
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
simple-archiver
Advanced tools
Simple archiver for zip and tar formats that can handle multiple entries of files, directories, buffers, streams and strings
Archive multiple files, directories, buffers, streams and strings; supports 'zip' and 'tar' formats; can output a Buffer (default), Stream or to a path.
Can extract archives from a path, Buffer or Stream to a specified path.
npm install simple-archiver --save
var archive = require('simple-archiver').archive;
archive(path)
.then(archiveBuffer => console.log('Done! We should do something with the buffer.'))
.catch(console.log);
archive(['/path/file.txt', '/path/auto-detect-dir-or-file-type', '/and-so-on']); // .then(...).catch(...);
// You can include Buffers, Streams and Strings in the archive as well (giving them a name)
archive([
{ data: '/path/file', type: 'file', name: 'new-file-name' },
{ data: '/path/dir', type: 'directory', name: 'new-dir-name' },
{ data: buffer, type: 'buffer', name: 'file1' },
{ data: stream, type: 'stream', name: 'file2' },
{ data: 'string', type: 'string', name: 'file3' }
], {
format: 'tar',
output: '/path/archive.tar'
}); // we're making it a 'tar' archive and saving it to a path
For optimal performance, you would use objects specifying the type and name of each entry. While not optimal, the type can be determined automatically, but the name can only be determined for paths (files and directories).
var extract = require('simple-archiver').extract;
// archive can be a path (String), Buffer or Stream
let archive = '/myarchive.tar';
extract(archive, '/path', { format: 'tar' }) // the format is 'zip' by default, so you have to specify it for 'tar'
.then(() => console.log('Extraction finished!'))
.catch(console.log);
=> Promise
Resolves to an archive Buffer (default), Stream or path depending on the chosen output.
Array of Objects | Array of Strings | Object | String
Object properties:
data - The data you wish to archive: file/directory path (String), Buffer, Stream or String (to save as a file);type - (optional) Entry type: 'file', 'directory', 'other'; The type can be automatically determined (but if you know it, use it); Buffer, Stream and String are handled automatically and are classified here as 'other'; you can use any name instead of 'other' since it's the default;name - (optional) The name the entry will have in the archive; may be a path within the archive (e.g. '/path/name'); Optional for 'file' and 'directory' (basenames are used by default), recommended for 'other' (a counter will be used if missing, starts at 0);(Optional) Object
Object properties:
format - (optional) Archive format: 'zip' (default), 'tar';output - (optional) Output type: 'buffer' (default), 'stream', '/path'; If you enter a path string, the archive will be saved there and the resolve value will be the path string;=> Promise
Extraction has finished when the promise resolves
String | Buffer | Stream
The archive path (String), Buffer or Stream.
String
The path to save the archive contents to.
(Optional) Object
Object properties:
format - (optional) Archive format: 'zip' (default), 'tar';Note: Extract doesn't know the format of your archive, so if it's not 'zip', remember to set it.
Used by archive() and provided to you if you need access to advanced options.
Used by extract() and provided as unzip and tar from the module.
Note: Since unzip has been unmaintained for a very long time, it has been forked a number of times; this package uses a fork of a fork in order to keep things up to date and maintain a degree of control over its dependencies.
You're welcome to make any feature requests, but remember that this package relies on the above three
A big thank you to the above package creators and collaborators for making this possible.
FAQs
Simple archiver for zip and tar formats that can handle multiple entries of files, directories, buffers, streams and strings
The npm package simple-archiver receives a total of 32 weekly downloads. As such, simple-archiver popularity was classified as not popular.
We found that simple-archiver demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.