JSZipp - ZIPs in the modern browser
Fast, compact, and defensive.

JSZipp gives web apps fast ZIP creation and inspection without pulling in a heavyweight bundle. Work with large, modern ZIP64-scale archives and catch dangerous paths, zip bombs, and malformed layouts before they reach your app.

safe reader defaults Blob / Response / Stream output ZIP64 no dependencies

Write archives

Create browser-downloadable ZIP files with ZipWriter, choose compression level, preserve timestamps and comments, and return Blob, Response, ReadableStream, Uint8Array, or ArrayBuffer.

Read uploads

Open user-selected files with openZip(), reject unsafe paths by default, cap archive and entry sizes, and read entries with text(), bytes(), arrayBuffer(), or stream().

Example

import { ZipWriter } from "web-jszipp";

const writer = new ZipWriter({ outputAs: "blob" });
await writer.add({ path: "Hello.txt", data: "Hello World\n" });

const smileBytes = Uint8Array.from(atob(imgData), (char) => char.charCodeAt(0));
await writer.add({ path: "images/smile.gif", data: smileBytes });

const content = await writer.close();
saveAs(content, "example.zip");

Getting help