Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
The tar npm package is used for manipulating tarballs, which are archives of files and directories. It allows users to create new tarballs, extract files from existing tarballs, and list or update the contents of tarballs. It is a JavaScript implementation of the POSIX tar command and is commonly used in Node.js applications for handling tar files.
Creating a tarball
This feature allows you to create a tarball. The example code demonstrates how to create a gzipped tarball named 'my-tarball.tgz' that contains 'file1.js' and 'file2.txt'.
const tar = require('tar');
tar.c(
{
gzip: true,
file: 'my-tarball.tgz'
},
['file1.js', 'file2.txt']
).then(_ => console.log('Tarball has been created.'));
Extracting a tarball
This feature allows you to extract files from a tarball. The example code demonstrates how to extract 'my-tarball.tgz' into the directory 'some/dir'.
const tar = require('tar');
tar.x(
{
file: 'my-tarball.tgz',
C: 'some/dir'
}
).then(_ => console.log('Tarball has been extracted.'));
Listing contents of a tarball
This feature allows you to list the contents of a tarball. The example code demonstrates how to list the paths of all files and directories in 'my-tarball.tgz'.
const tar = require('tar');
tar.t(
{
file: 'my-tarball.tgz',
onentry: entry => console.log(entry.path)
}
).then(_ => console.log('Contents have been listed.'));
Updating a tarball
This feature allows you to update a tarball by adding new files. The example code demonstrates how to add 'newfile.txt' to the existing 'my-tarball.tgz'.
const tar = require('tar');
tar.u(
{
file: 'my-tarball.tgz'
},
['newfile.txt']
).then(_ => console.log('Tarball has been updated.'));
Archiver is a streaming interface for archive generation, supporting ZIP and TAR formats. It offers more customization options for creating archives compared to tar, such as appending files from streams, buffers, or the file system with specific archive options.
Compressing is a powerful and flexible node.js compression library that supports various archive formats like tar, zip, gzip, and bzip2. It provides both streaming and promise-based APIs, which can be more convenient for certain use cases compared to tar.
Node-tar is another tarball manipulation library that can handle large files and supports streaming. It is similar to the tar package but is maintained by a different group of developers. It may have different performance characteristics or API nuances.
Tar for Node.js.
Be able to parse and reasonably extract the contents of any tar file created by any program that creates tar files, period.
At least, this includes every version of:
Create tar files that can be extracted by any of the following tar programs:
100% test coverage. Speed is important. Correctness is slightly more important.
Create the kind of tar interface that Node users would want to use.
Satisfy npm's needs for a portable tar implementation with a JavaScript interface.
No excuses. No complaining. No tolerance for failure.
Yes, there are a few. This one is going to be better, and it will be fanatically maintained, because npm will depend on it.
That's why I need to write it from scratch. Creating and extracting tarballs is such a large part of what npm does, I simply can't have it be a black box any longer.
It's in the "old" folder. It's not functional. Don't use it.
It was a useful exploration to learn the issues involved, but like most software of any reasonable complexity, node-tar won't be useful until it's been written at least 3 times.
FAQs
tar for node
We found that tar demonstrated a healthy version release cadence and project activity because the last version was released less than 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
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.