@zip.js/zip.js
A JavaScript library to zip and unzip files in the browser, Deno and Node.js
Last updated 9 months ago by gildas-lormeau .
BSD-3-Clause · Repository · Bugs · Original npm · Tarball · package.json
$ npm install @zip.js/zip.js 
SYNC missed versions from official npm registry.

Introduction

zip.js is a JavaScript open-source library (BSD-3-Clause license) for compressing and decompressing zip files. It has been designed to handle large amounts of data. It supports notably multi-core compression, native compression with compression streams, archives larger than 4GB with Zip64, split zip files and data encryption.

Demo

See https://gildas-lormeau.github.io/zip-manager

Documentation

See here for more info: https://gildas-lormeau.github.io/zip.js/

Examples

Hello world

import {
  BlobReader,
  BlobWriter,
  TextReader,
  TextWriter,
  ZipReader,
  ZipWriter,
} from "https://deno.land/x/zipjs/index.js";

// ----
// Write the zip file
// ----

// Creates a BlobWriter object where the zip content will be written.
const zipFileWriter = new BlobWriter();
// Creates a TextReader object storing the text of the entry to add in the zip
// (i.e. "Hello world!").
const helloWorldReader = new TextReader("Hello world!");

// Creates a ZipWriter object writing data via `zipFileWriter`, adds the entry
// "hello.txt" containing the text "Hello world!" via `helloWorldReader`, and
// closes the writer.
const zipWriter = new ZipWriter(zipFileWriter);
await zipWriter.add("hello.txt", helloWorldReader);
await zipWriter.close();

// Retrieves the Blob object containing the zip content into `zipFileBlob`. It
// is also returned by zipWriter.close() for more convenience.
const zipFileBlob = await zipFileWriter.getData();

// ----
// Read the zip file
// ----

// Creates a BlobReader object used to read `zipFileBlob`.
const zipFileReader = new BlobReader(zipFileBlob);
// Creates a TextWriter object where the content of the first entry in the zip
// will be written.
const helloWorldWriter = new TextWriter();

// Creates a ZipReader object reading the zip content via `zipFileReader`,
// retrieves metadata (name, dates, etc.) of the first entry, retrieves its
// content via `helloWorldWriter`, and closes the reader.
const zipReader = new ZipReader(zipFileReader);
const firstEntry = (await zipReader.getEntries()).shift();
const helloWorldText = await firstEntry.getData(helloWorldWriter);
await zipReader.close();

// Displays "Hello world!".
console.log(helloWorldText);

Run the code on JSFiddle: https://jsfiddle.net/dns7pkxt/

Hello world with Streams

import {
  BlobReader,
  ZipReader,
  ZipWriter,
} from "https://deno.land/x/zipjs/index.js";

// ----
// Write the zip file
// ----

// Creates a TransformStream object, the zip content will be written in the
// `writable` property.
const zipFileStream = new TransformStream();
// Creates a Promise object resolved to the zip content returned as a Blob
// object retrieved from `zipFileStream.readable`.
const zipFileBlobPromise = new Response(zipFileStream.readable).blob();
// Creates a ReadableStream object storing the text of the entry to add in the
// zip (i.e. "Hello world!").
const helloWorldReadable = new Blob(["Hello world!"]).stream();

// Creates a ZipWriter object writing data into `zipFileStream.writable`, adds
// the entry "hello.txt" containing the text "Hello world!" retrieved from
// `helloWorldReadable`, and closes the writer.
const zipWriter = new ZipWriter(zipFileStream.writable);
await zipWriter.add("hello.txt", helloWorldReadable);
await zipWriter.close();

// Retrieves the Blob object containing the zip content into `zipFileBlob`.
const zipFileBlob = await zipFileBlobPromise;

// ----
// Read the zip file
// ----

// Creates a BlobReader object used to read `zipFileBlob`.
const zipFileReader = new BlobReader(zipFileBlob);
// Creates a TransformStream object, the content of the first entry in the zip
// will be written in the `writable` property.
const helloWorldStream = new TransformStream();
// Creates a Promise object resolved to the content of the first entry returned
// as text from `helloWorldStream.readable`.
const helloWorldTextPromise = new Response(helloWorldStream.readable).text();

// Creates a ZipReader object reading the zip content via `zipFileReader`,
// retrieves metadata (name, dates, etc.) of the first entry, retrieves its
// content into `helloWorldStream.writable`, and closes the reader.
const zipReader = new ZipReader(zipFileReader);
const firstEntry = (await zipReader.getEntries()).shift();
await firstEntry.getData(helloWorldStream.writable);
await zipReader.close();

// Displays "Hello world!".
const helloWorldText = await helloWorldTextPromise;
console.log(helloWorldText);

Run the code on JSFiddle: https://jsfiddle.net/exnyq1ft/

Adding concurrently multiple entries in a zip file

import {
  BlobWriter,
  HttpReader,
  TextReader,
  ZipWriter,
} from "https://unpkg.com/@zip.js/zip.js/index.js";

const README_URL = "https://unpkg.com/@zip.js/zip.js/README.md";
getZipFileBlob()
  .then(downloadFile);

async function getZipFileBlob() {
  const zipWriter = new ZipWriter(new BlobWriter("application/zip"));
  await Promise.all([
    zipWriter.add("hello.txt", new TextReader("Hello world!")),
    zipWriter.add("README.md", new HttpReader(README_URL)),
  ]);
  return zipWriter.close();
}

function downloadFile(blob) {
  document.body.appendChild(Object.assign(document.createElement("a"), {
    download: "hello.zip",
    href: URL.createObjectURL(blob),
    textContent: "Download zip file",
  }));
}

Run the code on Plunker: https://plnkr.co/edit/4sVljNIpqSUE9HCA?preview

Tests

See https://github.com/gildas-lormeau/zip.js/tree/master/tests/all

Current Tags

  • 2.7.52                                ...           latest (3 months ago)

274 Versions

  • 2.7.52                                ...           3 months ago
  • 2.7.51                                ...           3 months ago
  • 2.7.50                                ...           3 months ago
  • 2.7.49                                ...           3 months ago
  • 2.7.48                                ...           3 months ago
  • 2.7.47                                ...           4 months ago
  • 2.7.46                                ...           4 months ago
  • 2.7.45                                ...           6 months ago
  • 2.7.44                                ...           6 months ago
  • 2.7.43                                ...           7 months ago
  • 2.7.42                                ...           7 months ago
  • 2.7.41                                ...           7 months ago
  • 2.7.40                                ...           8 months ago
  • 2.7.39                                ...           8 months ago
  • 2.7.38                                ...           8 months ago
  • 2.7.37                                ...           8 months ago
  • 2.7.36                                ...           9 months ago
  • 2.7.35                                ...           9 months ago
  • 2.7.34                                ...           10 months ago
  • 2.7.33                                ...           10 months ago
  • 2.7.32                                ...           a year ago
  • 2.7.31                                ...           a year ago
  • 2.7.30                                ...           a year ago
  • 2.7.29                                ...           a year ago
  • 2.7.28                                ...           a year ago
  • 2.7.27                                ...           a year ago
  • 2.7.26                                ...           a year ago
  • 2.7.25                                ...           a year ago
  • 2.7.24                                ...           a year ago
  • 2.7.23                                ...           a year ago
  • 2.7.22                                ...           a year ago
  • 2.7.21                                ...           a year ago
  • 2.7.20                                ...           a year ago
  • 2.7.19                                ...           a year ago
  • 2.7.18                                ...           a year ago
  • 2.7.17                                ...           a year ago
  • 2.7.16                                ...           a year ago
  • 2.7.15                                ...           a year ago
  • 2.7.14                                ...           a year ago
  • 2.7.13                                ...           2 years ago
  • 2.7.12                                ...           2 years ago
  • 2.7.11                                ...           2 years ago
  • 2.7.10                                ...           2 years ago
  • 2.7.9                                ...           2 years ago
  • 2.7.8                                ...           2 years ago
  • 2.7.7                                ...           2 years ago
  • 2.7.6                                ...           2 years ago
  • 2.7.5                                ...           2 years ago
  • 2.7.4                                ...           2 years ago
  • 2.7.3                                ...           2 years ago
  • 2.7.2                                ...           2 years ago
  • 2.7.1                                ...           2 years ago
  • 2.7.0                                ...           2 years ago
  • 2.6.84                                ...           2 years ago
  • 2.6.83                                ...           2 years ago
  • 2.6.82                                ...           2 years ago
  • 2.6.81                                ...           2 years ago
  • 2.6.80                                ...           2 years ago
  • 2.6.79                                ...           2 years ago
  • 2.6.78                                ...           2 years ago
  • 2.6.77                                ...           2 years ago
  • 2.6.76                                ...           2 years ago
  • 2.6.75                                ...           2 years ago
  • 2.6.74                                ...           2 years ago
  • 2.6.73                                ...           2 years ago
  • 2.6.72                                ...           2 years ago
  • 2.6.71                                ...           2 years ago
  • 2.6.70                                ...           2 years ago
  • 2.6.69                                ...           2 years ago
  • 2.6.68                                ...           2 years ago
  • 2.6.67                                ...           2 years ago
  • 2.6.66                                ...           2 years ago
  • 2.6.65                                ...           2 years ago
  • 2.6.64                                ...           2 years ago
  • 2.6.63                                ...           2 years ago
  • 2.6.62                                ...           2 years ago
  • 2.6.61                                ...           2 years ago
  • 2.6.60                                ...           2 years ago
  • 2.6.59                                ...           2 years ago
  • 2.6.58                                ...           2 years ago
  • 2.6.57                                ...           2 years ago
  • 2.6.56                                ...           2 years ago
  • 2.6.55                                ...           2 years ago
  • 2.6.54                                ...           2 years ago
  • 2.6.53                                ...           2 years ago
  • 2.6.52                                ...           2 years ago
  • 2.6.51                                ...           2 years ago
  • 2.6.50                                ...           2 years ago
  • 2.6.49                                ...           2 years ago
  • 2.6.48                                ...           2 years ago
  • 2.6.47                                ...           2 years ago
  • 2.6.46                                ...           2 years ago
  • 2.6.45                                ...           2 years ago
  • 2.6.44                                ...           2 years ago
  • 2.6.43                                ...           2 years ago
  • 2.6.42                                ...           2 years ago
  • 2.6.41                                ...           2 years ago
  • 2.6.40                                ...           2 years ago
  • 2.6.38                                ...           2 years ago
  • 2.6.37                                ...           2 years ago
  • 2.6.36                                ...           2 years ago
  • 2.6.35                                ...           2 years ago
  • 2.6.34                                ...           2 years ago
  • 2.6.33                                ...           2 years ago
  • 2.6.32                                ...           2 years ago
  • 2.6.31                                ...           2 years ago
  • 2.6.30                                ...           2 years ago
  • 2.6.29                                ...           2 years ago
  • 2.6.28                                ...           2 years ago
  • 2.6.26                                ...           2 years ago
  • 2.6.25                                ...           2 years ago
  • 2.6.24                                ...           2 years ago
  • 2.6.23                                ...           2 years ago
  • 2.6.22                                ...           2 years ago
  • 2.6.21                                ...           2 years ago
  • 2.6.20                                ...           2 years ago
  • 2.6.19                                ...           2 years ago
  • 2.6.18                                ...           2 years ago
  • 2.6.17                                ...           2 years ago
  • 2.6.16                                ...           2 years ago
  • 2.6.15                                ...           2 years ago
  • 2.6.14                                ...           2 years ago
  • 2.6.13                                ...           2 years ago
  • 2.6.12                                ...           2 years ago
  • 2.6.11                                ...           2 years ago
  • 2.6.10                                ...           2 years ago
  • 2.6.9                                ...           2 years ago
  • 2.6.8                                ...           2 years ago
  • 2.6.7                                ...           2 years ago
  • 2.6.6                                ...           2 years ago
  • 2.6.5                                ...           2 years ago
  • 2.6.4                                ...           2 years ago
  • 2.6.3                                ...           2 years ago
  • 2.6.2                                ...           2 years ago
  • 2.6.1                                ...           2 years ago
  • 2.6.0                                ...           2 years ago
  • 2.5.26                                ...           2 years ago
  • 2.5.25                                ...           2 years ago
  • 2.5.24                                ...           2 years ago
  • 2.5.23                                ...           2 years ago
  • 2.5.22                                ...           2 years ago
  • 2.5.21                                ...           2 years ago
  • 2.5.20                                ...           2 years ago
  • 2.5.19                                ...           2 years ago
  • 2.5.18                                ...           2 years ago
  • 2.5.17                                ...           2 years ago
  • 2.5.16                                ...           2 years ago
  • 2.5.15                                ...           2 years ago
  • 2.5.14                                ...           2 years ago
  • 2.5.13                                ...           2 years ago
  • 2.5.12                                ...           2 years ago
  • 2.5.11                                ...           2 years ago
  • 2.5.10                                ...           2 years ago
  • 2.5.9                                ...           2 years ago
  • 2.5.8                                ...           2 years ago
  • 2.5.7                                ...           2 years ago
  • 2.5.5                                ...           2 years ago
  • 2.5.4                                ...           2 years ago
  • 2.5.3                                ...           2 years ago
  • 2.5.2                                ...           2 years ago
  • 2.5.1                                ...           2 years ago
  • 2.5.0                                ...           2 years ago
  • 2.4.26                                ...           2 years ago
  • 2.4.25                                ...           2 years ago
  • 2.4.24                                ...           2 years ago
  • 2.4.23                                ...           2 years ago
  • 2.4.22                                ...           2 years ago
  • 2.4.21                                ...           2 years ago
  • 2.4.20                                ...           2 years ago
  • 2.4.19                                ...           2 years ago
  • 2.4.18                                ...           2 years ago
  • 2.4.17                                ...           2 years ago
  • 2.4.15                                ...           2 years ago
  • 2.4.14                                ...           2 years ago
  • 2.4.13                                ...           2 years ago
  • 2.4.12                                ...           2 years ago
  • 2.4.11                                ...           3 years ago
  • 2.4.10                                ...           3 years ago
  • 2.4.9                                ...           3 years ago
  • 2.4.8                                ...           3 years ago
  • 2.4.7                                ...           3 years ago
  • 2.4.6                                ...           3 years ago
  • 2.4.5                                ...           3 years ago
  • 2.4.4                                ...           3 years ago
  • 2.4.3                                ...           3 years ago
  • 2.4.2                                ...           3 years ago
  • 2.4.1                                ...           3 years ago
  • 2.4.0                                ...           3 years ago
  • 2.3.24                                ...           3 years ago
  • 2.3.23                                ...           3 years ago
  • 2.3.22                                ...           3 years ago
  • 2.3.21                                ...           3 years ago
  • 2.3.20                                ...           3 years ago
  • 2.3.19                                ...           3 years ago
  • 2.3.18                                ...           3 years ago
  • 2.3.17                                ...           3 years ago
  • 2.3.16                                ...           3 years ago
  • 2.3.15                                ...           3 years ago
  • 2.3.14                                ...           3 years ago
  • 2.3.13                                ...           3 years ago
  • 2.3.12                                ...           3 years ago
  • 2.3.11                                ...           3 years ago
  • 2.3.10                                ...           3 years ago
  • 2.3.9                                ...           3 years ago
  • 2.3.8                                ...           3 years ago
  • 2.3.7                                ...           3 years ago
  • 2.3.6                                ...           3 years ago
  • 2.3.5                                ...           3 years ago
  • 2.3.4                                ...           3 years ago
  • 2.3.3                                ...           3 years ago
  • 2.3.2                                ...           3 years ago
  • 2.3.1                                ...           3 years ago
  • 2.3.0                                ...           3 years ago
  • 2.2.45                                ...           3 years ago
  • 2.2.44                                ...           3 years ago
  • 2.2.43                                ...           3 years ago
  • 2.2.42                                ...           3 years ago
  • 2.2.41                                ...           3 years ago
  • 2.2.40                                ...           3 years ago
  • 2.2.39                                ...           3 years ago
  • 2.2.38                                ...           3 years ago
  • 2.2.37                                ...           3 years ago
  • 2.2.36                                ...           3 years ago
  • 2.2.35                                ...           3 years ago
  • 2.2.34                                ...           3 years ago
  • 2.2.33                                ...           3 years ago
  • 2.2.32                                ...           4 years ago
  • 2.2.31                                ...           4 years ago
  • 2.2.30                                ...           4 years ago
  • 2.2.29                                ...           4 years ago
  • 2.2.28                                ...           4 years ago
  • 2.2.27                                ...           4 years ago
  • 2.2.26                                ...           4 years ago
  • 2.2.25                                ...           4 years ago
  • 2.2.24                                ...           4 years ago
  • 2.2.23                                ...           4 years ago
  • 2.2.22                                ...           4 years ago
  • 2.2.21                                ...           4 years ago
  • 2.2.20                                ...           4 years ago
  • 2.2.19                                ...           4 years ago
  • 2.2.18                                ...           4 years ago
  • 2.2.17                                ...           4 years ago
  • 2.2.16                                ...           4 years ago
  • 2.2.15                                ...           4 years ago
  • 2.2.14                                ...           4 years ago
  • 2.2.13                                ...           4 years ago
  • 2.2.12                                ...           4 years ago
  • 2.2.11                                ...           4 years ago
  • 2.2.10                                ...           4 years ago
  • 2.2.9                                ...           4 years ago
  • 2.2.8                                ...           4 years ago
  • 2.2.7                                ...           4 years ago
  • 2.2.6                                ...           4 years ago
  • 2.2.5                                ...           4 years ago
  • 2.2.4                                ...           4 years ago
  • 2.2.3                                ...           4 years ago
  • 2.2.2                                ...           4 years ago
  • 2.2.1                                ...           4 years ago
  • 2.2.0                                ...           4 years ago
  • 2.1.1                                ...           4 years ago
  • 2.1.0                                ...           4 years ago
  • 2.0.12                                ...           4 years ago
  • 2.0.11                                ...           4 years ago
  • 2.0.10                                ...           4 years ago
  • 2.0.9                                ...           4 years ago
  • 2.0.8                                ...           4 years ago
  • 2.0.7                                ...           4 years ago
  • 2.0.6                                ...           4 years ago
  • 2.0.5                                ...           4 years ago
  • 2.0.4                                ...           4 years ago
  • 2.0.3                                ...           4 years ago
  • 2.0.2                                ...           4 years ago
  • 2.0.1                                ...           4 years ago
  • 2.0.0                                ...           4 years ago
Downloads
Total 0
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (6)
Dependents (2)

© 2010 - cnpmjs.org x YWFE | Home | YWFE