How to zip to tar.gz converter online for free
- Step 1Open the ZIP → TAR.GZ tool — Load the tool page. Everything runs locally — once the page is open you can even disconnect from the network and the conversion still works, because
fflateand the WASM reader are already in the tab. - Step 2Drop your ZIP onto the dropzone — Click the dropzone or drag a single
.zipin. This is a single-file tool, so if you drop several only the first is kept. The dropzone also accepts.tar,.gz,.7z,.rar,.bz2,.xzand.iso— all of those convert to TAR.GZ too, despite the tool's name. - Step 3Check you are under the tier cap — Free allows up to 50 MB per file and 500 entries inside the archive. If the file is bigger you get a
File exceeds the free tier per-job limit (50 MB)message before any work starts. Sign in to a paid tier for 500 MB or 2 GB. - Step 4Press Process — There are no settings to choose — the tool has no options panel.
fflateunzips every entry, skips directory placeholders, writes a TAR (each file at mode 0644), GZIPs at level 6, and produces a single.tar.gzblob. - Step 5Confirm the entry count — The result panel shows
Source: ZIP,Target: TAR.GZand anEntriescount. Cross-check that against what you expected — if it is lower than the file count in the ZIP, your ZIP stored empty directories (those are dropped) or you hit an encrypted entry. - Step 6Download the TAR.GZ — Click Download. The file is named after your input stem —
project.zipbecomesproject.tar.gz. Verify on the receiving end withtar -tzf project.tar.gzto list contents without extracting.
What you drop in vs what you get out
The tool is named for ZIP but reads any format the in-browser engines support. Output is always a single GZIP-compressed TAR.
| Input you drop | Engine that reads it | Output | Notes |
|---|---|---|---|
.zip (unencrypted) | fflate unzipSync | .tar.gz | The headline path — every file entry repacked into TAR, directory placeholders dropped |
.zip (encrypted entries) | probed via central directory | fails | No password field on this tool — stops with Archive contains encrypted entries… Provide a password |
.tar / .tar.gz / .tgz | fflate TAR / GZIP | .tar.gz | Re-GZIPs at level 6; useful to recompress a loose .tar |
.gz (single-file gzip) | fflate gunzipSync | .tar.gz | Inner filename read from the GZIP header where present, else derived from the file name |
.7z / .rar / .bz2 / .xz / .iso | libarchive.js WASM (read-only) | .tar.gz | WASM reads these formats fflate cannot; output is still TAR.GZ |
Free-tier limits and what triggers them
Limits are enforced client-side before processing. Numbers from the archive tier-limit table.
| Tier | Max file size | Max entries / archive | Files per job |
|---|---|---|---|
| Free | 50 MB | 500 | 1 |
| Pro | 500 MB | 50,000 | 20 |
| Pro-media | 2 GB | 500,000 | 100 |
| Developer | 2 GB | 500,000 | unlimited |
Cookbook
Real conversions you can reproduce. Each shows what you drop in, what the result panel reports, and what the downloaded TAR.GZ contains.
A plain source ZIP to TAR.GZ for a Linux box
The everyday case: a colleague sent release.zip, the deploy host wants .tar.gz. Drop it, press Process, download.
Input: release.zip (1.4 MB, 38 files) Result panel: Source: ZIP Target: TAR.GZ Entries: 38 Original: 1.4 MB Output: 1.3 MB Download: release.tar.gz Verify on the server: $ tar -tzf release.tar.gz | head app.js package.json src/index.html
Re-GZIP a loose .tar that someone forgot to compress
You were handed an uncompressed .tar. The tool reads it and emits a level-6 GZIP wrapper, shrinking it without touching contents.
Input: backup.tar (22 MB, 410 entries) Result panel: Source: ZIP* Target: TAR.GZ Entries: 410 (*metrics label says ZIP→TAR.GZ; the reader auto-detected TAR) Original: 22 MB Output: 6.8 MB Download: backup.tar.gz
Convert a 7z you can't open without 7-Zip installed
No 7-Zip on this machine, but the browser can still read .7z via the libarchive WASM bridge and hand you a universally-readable TAR.GZ.
Input: assets.7z (8.1 MB, 120 files) Processing… (WASM reader spins up) Result panel: Source: ZIP Target: TAR.GZ Entries: 120 Download: assets.tar.gz Now openable anywhere with: tar -xzf assets.tar.gz
An encrypted ZIP — what the failure looks like
Password-protected ZIPs can't be converted by this tool because it has no password field. The error names the offending entry so you know why.
Input: secrets.zip (AES-256 encrypted) Result: error Archive contains encrypted entries (e.g. "db.env"). Provide a password to extract. This tool has no password input — decrypt first, or use a sibling tool that exposes one (see the FAQ).
A ZIP with empty folders — entry count comes out lower
ZIP stores directory placeholders; the TAR builder only writes file entries. The folder structure survives through the file paths, but empty directories vanish.
Input: scaffold.zip contains: src/, src/index.ts, docs/ (empty), README.md Result panel: Entries: 2 (src/index.ts and README.md) Download: scaffold.tar.gz tar -tzf → src/index.ts, README.md (the empty docs/ folder is not in the TAR)
Edge cases and what actually happens
ZIP has encrypted entries
RejectedBefore unzipping, the central directory is probed; if any entry is encrypted the conversion stops with Archive contains encrypted entries (e.g. "…"). Provide a password to extract. This tool has no password field, so there is no way to proceed here — decrypt the ZIP elsewhere first, then convert.
File is larger than the tier cap
Blocked (limit)Size is checked before any processing. On free you get File "x.zip" exceeds the free tier per-job limit (50 MB). Upgrade for larger files. The check uses the on-disk file size, not the uncompressed size, so a small ZIP that expands to gigabytes still passes the gate (but may exhaust browser memory — see below).
Empty directory placeholders in the ZIP
By designfflate's unzip yields directory entries ending in /; the converter skips those, and the TAR builder only writes regular files. Empty folders therefore disappear from the output. Folders that contain files survive implicitly through each file's path.
Unix permissions and symlinks
Not preservedEvery file in the TAR is written at mode 0644 (type 0, regular file) regardless of the original. ZIP does not expose Unix mode bits in a standard field, and symlinks are flattened to their target bytes by the reader. If executables need +x on the far end, chmod after extraction.
Modification times
Not preservedThe TAR header mtime is set to the moment of conversion (Date.now()), not the original entry timestamps. Two runs of the same ZIP produce different bytes. For reproducible builds normalise timestamps with the timestamp normaliser after — though it operates on ZIPs, so apply before converting.
Non-ASCII filenames
SupportedFilenames are UTF-8 encoded into the 100-byte TAR name field. Names that fit round-trip cleanly. Very long paths beyond the ustar 100-byte name limit may be truncated by readers that don't support the GNU/PAX extensions; keep paths short for maximum portability.
Huge archive within size cap but enormous uncompressed
May fail (memory)Conversion is fully in-memory: the whole input is read, fully decompressed, the TAR assembled, then GZIPped — several copies coexist briefly. A 40 MB ZIP that inflates to 4 GB can exhaust a browser tab. If processing stalls or the tab crashes, split the source or use a paid tier on a machine with more RAM.
Input isn't actually an archive
RejectedFormat is sniffed from the magic bytes. A renamed text file or a corrupt header that matches nothing known triggers Could not detect or extract archive format for <name> after a last-resort ZIP attempt fails.
Multiple files dropped
First onlyThis is a single-input converter. If you drag in several files only the first is kept. To convert many ZIPs at once, run them one at a time, or look at a batch tool in the suite.
Output opens as .tar inside a .gz on Windows
ExpectedSome Windows tools show project.tar.gz as a .gz containing a .tar — two unwrap steps. That is correct: GZIP wraps a single stream (the TAR). tar -xzf on Linux/macOS, or 7-Zip on Windows, handles both layers in one go.
Frequently asked questions
Does my ZIP get uploaded anywhere?
No. The conversion runs entirely in your browser via fflate (and a WASM reader for exotic formats). The result panel shows a 0 bytes uploaded badge to make that explicit. The only thing recorded server-side for signed-in users is a single usage counter — never file content.
Is there a paywall on the free tier?
No signup or payment is required to convert. The free tier caps at 50 MB and 500 entries per archive. Larger files prompt an upgrade to Pro (500 MB / 50,000 entries) or higher, but the basic conversion is free and unlimited in count within those size bounds.
Can it convert a password-protected ZIP?
Not through this tool — it has no password field, so encrypted ZIPs fail with Archive contains encrypted entries… Provide a password to extract. Decrypt the ZIP first with the original software, or use a sibling that exposes a password input such as the multi-format extractor to extract, then re-pack.
Why is the entry count lower than the file count in my ZIP?
Empty directory entries are dropped — the TAR builder only writes regular files. If your ZIP had empty folders, they won't appear in the count. The folder paths of non-empty directories are still preserved through the files inside them.
Does it keep file permissions and timestamps?
No. Every TAR entry is written at mode 0644 and the modification time is set to the moment of conversion, not the original. ZIP doesn't expose Unix mode bits cleanly, so there's nothing reliable to carry over. chmod +x executables after extraction if needed.
What GZIP compression level does it use?
Level 6 — the same DEFLATE default gzip and tar czf use. There is no slider; the level is fixed. If you need a different ratio, the smart archive compressor exposes a 0–9 level control for ZIP output.
Can I drop a .7z or .rar even though the tool says ZIP?
Yes. The dropzone and reader accept ZIP, TAR, GZIP, 7z, RAR, BZ2, XZ and ISO. 7z/RAR/BZ2/XZ/ISO are read by a libarchive WASM bridge (read-only). Whatever you drop, the output is a TAR.GZ. If you only need format conversion generically, the archive format converter lets you pick ZIP, TAR.GZ or GZIP as the target.
Will it work offline?
Yes, once the page has loaded. The engines run in the tab, so you can disconnect and still convert. This is useful on air-gapped or restricted machines where you can't install tar.
How do I go the other way — TAR.GZ back to ZIP?
Use the TAR.GZ to ZIP converter. It reads the TAR.GZ and re-packs every entry as a ZIP at level 6 for Windows users who'd rather double-click than run tar.
My big ZIP makes the tab freeze — what now?
Conversion holds the input, the fully-decompressed contents, and the output in memory at once. A small ZIP that expands enormously can exhaust the tab. Split the source archive, close other tabs, or run on a machine with more RAM. The size cap is on the file, not the uncompressed total.
Is the output a real, standard TAR.GZ?
Yes — a ustar-format TAR (with ustar magic and per-entry checksums) wrapped in standard GZIP. It's readable by GNU/BSD tar, 7-Zip, Keka, WinRAR, and any package manager that consumes .tar.gz.
Can I automate this instead of clicking?
On paid tiers, pairing the local @jadapps/runner routes the job to http://127.0.0.1:9789/v1/tools/zip-to-tar-gz so files never leave your machine. GET /api/v1/tools/zip-to-tar-gz returns the (empty) option schema — this tool takes no parameters, just the file. See the developer workflow guide.
Privacy first
Every JAD Archive tool runs entirely in your browser using fflate, @zip.js/zip.js, and the libarchive WASM bridge. Your archives never leave your device — verified by zero outbound network requests during processing.