# Create ZIP

> Zip a folder or dropped files in your browser. Chromium streams the zip to disk; other browsers get a size-capped download. Already-compressed types store.

- URL: https://bytescope.dev/en/zip-create/
- Locale: en · Also: [ja](https://bytescope.dev/ja/zip-create.md) · [zh-Hant](https://bytescope.dev/zh-Hant/zip-create.md)
- Runs: Files are read and packed in this tab. Nothing is uploaded, and the zip is written on your machine.
- Requires: Full mode needs Chrome, Edge or Opera on desktop (File System Access API) to read a folder and write results next to it. Firefox and Safari get a reduced mode: pick the folder through a file input and download the results.
- Updated: 2026-09-08

## What it does

Drop files or pick a folder and pack them into a zip, entirely in this tab. Nested paths stay nested. Nothing is uploaded: the bytes are read here and written here. On Chromium the archive is streamed through `showSaveFilePicker` straight onto disk, so a large folder never becomes one giant blob in memory. Firefox and Safari fall back to an in-memory download with a hard size cap, and the page says so before it starts.

### Store vs deflate

Already-compressed types (`jpg`, `png`, `mp4`, `zip`, `gz`, and the rest of that list) are stored as-is — re-deflating them burns CPU for almost no gain. Everything else is deflated at the level you pick (0–9, default 6). That choice is `compressionForEntry` from the shared engine, not a second guess at extensions on this page.

### Limits, not silent truncation

This writes ZIP32. One file larger than 4 GiB, a 65 536th entry, or an archive that would overflow the 32-bit size fields is listed and left out, not truncated. Stop is always available; a cancelled run does not save a half-written zip. AES-encrypted zip is not offered — fflate's streaming `Zip` writer has no AES (or traditional zip crypto) on the write path.

### Pair with Extract Archive

Create ZIP packs. Extract Archive unpacks zip, 7z, rar and tar, including passworded archives, and refuses zip-slip paths. Archive Inspector lists a container without writing anything. Use them as a loop: pack here, inspect or extract there, all on this machine.

## Limits

Does not create password-protected or split archives, and does not make 7z or RAR.

## FAQ

### Are my files uploaded to zip them?

No. The walk, the compression and the write all run in your browser. On Chromium the zip is streamed to a file you pick; on other browsers it is assembled in memory up to a published cap and then downloaded. The page is a static file with no server behind it, so there is no upload path even in principle.

### Why is there a size limit in Firefox or Safari?

Those browsers have no `showSaveFilePicker`, so the only way to hand you a zip is to build it in this tab's memory and trigger a download. A multi-gigabyte archive would freeze or crash the tab, so the page refuses to start when the projected size is over 512 MiB and tells you to use Chrome or Edge, which can stream to disk with no such cap besides ZIP32 itself.

### Why didn't my jpg get smaller?

It is already compressed. The packer stores `jpg`, `png`, `mp4`, `zip`, `gz` and similar types as-is (method store) instead of running deflate on them again. A large text file or a `.csv` will deflate. The deflate level control only affects files that are not on that already-compressed list, and files under 1 KB are stored either way because deflate cannot pay for itself there.

### Can I make an encrypted zip?

Not in this version. fflate's streaming `Zip` / `ZipDeflate` / `ZipPassThrough` writer has no AES and no traditional zip crypto. Spec 1012 leaves encrypted zip for a later pass rather than faking a lock that would not open in 7-Zip. If you need a passworded archive today, pack here and encrypt the zip as a file with Encrypt File, or extract a passworded archive with Extract Archive.

### How large a folder can it zip?

ZIP32 caps one file at 4 GiB, the archive at 4 GiB and the entry count at 65,535. Anything past those limits is listed, not truncated. Chromium streams to disk so RAM is not the ceiling; Firefox and Safari are capped at 512 MiB in memory. The walk stops past 200,000 files so a home directory picked by mistake cannot freeze the tab. Stop discards the half-written zip.

## Related tools

- [Extract Archive](https://bytescope.dev/en/extract-archive.md) — Unpack zip, 7z, rar and tar archives without uploading them.
- [Archive Inspector](https://bytescope.dev/en/archive-inspector.md) — Look inside a zip, tar, 7z or rar without extracting it.
