Observed since 20 Oct, 21:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
7zip-wrapper
A comprehensive, feature-complete Node.js wrapper for 7-Zip with TypeScript support, bundled binaries, and cross-platform compatibility.
A powerful, type-safe Node.js wrapper for 7-Zip with native Stream & Buffer support.
7zip-wrapper provides a modern, Promise-based API for 7-Zip operations. It bundles the 7-Zip binary for Windows, Linux, and macOS, ensuring zero configuration and reliable execution everywhere.
addFromStream) and out of archives (extractToStream).extractToBuffer) or add Buffers to archives.npm install 7zip-wrapper
The ZipWrapper class provides a clean, fluent interface for all operations.
import { ZipWrapper } from '7zip-wrapper';
const zip = new ZipWrapper();
// 1. Create an archive
await zip.add('backup.7z', ['src/', 'package.json'], {
level: 9,
password: 'secret-password',
});
// 2. Extract an archive
await zip.extract('backup.7z', {
outputDir: './restored',
overwrite: true,
});
If you prefer functions over classes, you can import them directly:
import { add, extract, list } from '7zip-wrapper';
await add('archive.zip', 'files/', { type: 'zip' });
await extract('archive.zip', { outputDir: 'out' });
Handle data efficiently without writing to temporary files.
Pipe a Readable stream (or Buffer) directly into an archive entry.
import { Readable } from 'stream';
const myStream = Readable.from(['Hello World']);
await zip.addFromStream('archive.7z', 'hello.txt', myStream);
Get a Readable stream for a file inside an archive.
const readStream = zip.extractToStream('archive.7z', 'large-file.log');
readStream.pipe(process.stdout);
Read a file from an archive directly into memory.
const buffer = await zip.extractToBuffer('assets.7z', 'config.json');
const config = JSON.parse(buffer.toString());
add(archive, files, options)Create or update an archive.
| Option | Type | Description |
|---|---|---|
type | string | Archive format (7z, zip, tar, gzip, etc.) |
level | 0-9 | Compression level (0=store, 9=ultra) |
password | string | Password for encryption |
encryptFilenames | boolean | Encrypt file names (Head encryption) |
recursive | boolean | Recurse into subdirectories (default: true) |
extract(archive, options)Extract files from an archive.
| Option | Type | Description |
|---|---|---|
outputDir | string | Destination directory |
files | string[] | Specific files/patterns to extract |
overwrite | boolean | Overwrite existing files |
password | string | Password for decryption |
Monitor operation progress for UI feedback.
await zip.add('big-archive.7z', 'data/', {
onProgress: (progress) => {
console.log(`Processing: ${progress.percent}% (${progress.file})`);
},
});
For simple, one-off tasks without configuration.
import { quick } from '7zip-wrapper';
await quick.zip(['file1.txt'], 'archive.zip'); // Max compression ZIP
await quick.sevenz(['file1.txt'], 'archive.7z'); // Max compression 7z
await quick.extract('archive.7z', 'output/');
| Format | Read | Write |
|---|---|---|
| 7z | ✅ | ✅ |
| ZIP | ✅ | ✅ |
| TAR | ✅ | ✅ |
| GZIP | ✅ | ✅ |
| XZ | ✅ | ✅ |
| RAR | ✅ | ❌* |
*RAR creation is not supported by 7-Zip open source binaries.
src/: TypeScript source code.examples/: Ready-to-run usage examples.MIT © Rashed Iqbal
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
@eslint/jsEnvironment{
"local_name": "@eslint/js",
"alias": false,
"peer_metadata": null
} | ^9.18.0 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^22.10.5 | development |
@vitest/coverage-v8Environment{
"local_name": "@vitest/coverage-v8",
"alias": false,
"peer_metadata": null
} | ^4.0.16 | development |
eslintEnvironment{
"local_name": "eslint",
"alias": false,
"peer_metadata": null
} | ^9.18.0 | development |
globalsEnvironment{
"local_name": "globals",
"alias": false,
"peer_metadata": null
} | ^15.14.0 | development |
prettierEnvironment{
"local_name": "prettier",
"alias": false,
"peer_metadata": null
} | ^3.4.2 | development |
tsupEnvironment{
"local_name": "tsup",
"alias": false,
"peer_metadata": null
} | ^8.5.1 | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5.9.3 | development |
typescript-eslintEnvironment{
"local_name": "typescript-eslint",
"alias": false,
"peer_metadata": null
} | ^8.19.1 | development |
vitestEnvironment{
"local_name": "vitest",
"alias": false,
"peer_metadata": null
} | ^4.0.16 | development |
Source distribution
{
"integrity": "sha512-tZkpRFB6hArFUJt+OeJHuOuGTL6ZCL+ZA93Bs2dVvJ+lZMHMTfylCeFUrYAguQXEBus49KuEWmYudFQWz8+MdA==",
"shasum": "5b70bc33c507937fecb741b0a9f2b9044b95eb31",
"tarball": "https://registry.npmjs.org/7zip-wrapper/-/7zip-wrapper-0.0.2.tgz",
"fileCount": 9,
"unpackedSize": 97608,
"signatures": [
{
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U",
"sig": "MEQCIDZVa5Mt12sOVVrBmPVnyJqbP6J56sspp15qqZZwAuf/AiBBneLm+KvjdnOK/rTB74eQ+0nELd2m1CNHRw3TCaD4HA=="
}
]
}Observed since 20 Oct, 21:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:d38e3db1fef8835b0457f13322fcfec30bb048e66ca93f8546a275863b7b3a86