
zip.js
JavaScript library to zip and unzip files supporting parallel compression, web streams, zip64, split files, data encryption, and deflate64 decompression.
The Lens
By Erik Loyd, SaaS CEO and former COO/CFO of an AWS Premier Partner.
Updated Aug 2026
zip.js reads and writes zip files in JavaScript, in the browser, in Node, in Deno, and in Bun. It is not a wrapper around a native binary. It does the compression itself, in web workers, in parallel, which is why it can zip a folder of files in a browser tab without freezing the page. BSD-3 licensed and free.
The feature list is why you would pick it over the smaller alternatives. Zip64 for archives past 4 GB, split archives, AES encryption, and streaming reads and writes so a 2 GB file never has to fit in memory at once. Recent releases added a filename validation option that rejects entries whose paths would escape the extraction directory, which is the zip-slip class of vulnerability you would otherwise have to defend against by hand.
Nothing to operate. It is an npm install and an import. Solo developers building anything that lets a user download a bundle of files or upload an archive: this is the sensible default. Teams: same answer, and the streaming API is what keeps it working at file sizes where naive implementations fall over.
The catch: this is essentially one maintainer's project, and releases ship every few days. That is a strength when your bug is fixed the same week you file it and a risk when you need to pin a version and trust it untouched for two years. The API surface is large and growing, so read the changelog before you upgrade rather than after.
Free vs Self-Hosted vs Paid
fully freeFree tier: Everything. BSD-3 clause, which permits commercial use, modification, and redistribution with attribution and no copyleft obligation.
Self-hosted: Not applicable in the usual sense. It is a client-side and server-side library that runs wherever your JavaScript already runs. It ships prebuilt bundles for browsers and standard module entry points for Node, Deno, and Bun. The only real cost is bundle size if you are shipping it to a browser, and the project splits the deflate engine out so you can drop it when the platform's own compression streams are good enough.
Paid: None. There is no company, no cloud tier, and no support contract on offer.
What it actually costs you: maintenance attention. Releases arrive every few days, so either pin a version deliberately and review changelogs before bumping, or accept a moving dependency. For a library handling untrusted archive input, staying current is the safer of those two habits.
Completely free and BSD-3 licensed. No paid tier, no hosted service, nothing to buy.
What to do by team size
- Solo
- free
- Small team
- free
- Medium team
- free; pin a version and review changelogs before upgrading
- Large team
- free, though a single-maintainer dependency deserves a vendoring plan
Get tools like this every Wednesday
One featured tool, three on the radar. No fluff.
A low score is not a verdict on quality. Young and niche tools start low by design. How we calculate scores
Trust Signals
License: BSD 3-Clause "New" or "Revised" License
Use freely. No endorsement clause.
Commercial use: ✓ Yes
About
- Owner
- Gildas (User)
- Stars
- 3,877
- Forks
- 547
Explore Further
More tools in the directory
next.js
The React Framework
141.8k ★deer-flow
An open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.
80.4k ★chromium
The official GitHub mirror of the Chromium source
24.6k ★