Tools/gildas-lormeau/zip.js

zip.js

JavaScript library to zip and unzip files supporting parallel compression, web streams, zip64, split files, data encryption, and deflate64 decompression.

3.9kemergingJavaScriptBSD 3-Clause "New" or "Revised" Licensetrending

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 free

Free 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
Self-hosting ops:trivial

Get tools like this every Wednesday

One featured tool, three on the radar. No fluff.

Score
74/100 · B+
Adoption17/30
Maintenance25/25
Community7/20
License15/15
Analysis10/10

A low score is not a verdict on quality. Young and niche tools start low by design. How we calculate scores

Trust Signals

Community discussions enabled

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