TAR is an uncompressed bundle of files, the Unix way. ZIP is the archive format every operating system opens without help. Python sits between the two, and this page says exactly what happens to a TAR file on the way to becoming a ZIP one.
What runs when a TAR file becomes ZIP
Python and its standard library, on a machine we rent and watch. Your TAR file is uploaded once, Python runs once, the ZIP comes back, and neither file is kept. TAR to ZIP is one of the 3649 pairs that engine was probed on with a real file, which is why it has a page here and why the pairs the probe could not prove do not.
What survives from the TAR into the ZIP
Every file, byte for byte, with the path it had. This pair reads each member out of the TAR and writes it into the ZIP unchanged: nothing is recompressed twice, re-encoded or renamed. The engine counts the members on the way out and refuses the result if the count moved.
Directory structure. A file that lived in reports/2024/ arrives in reports/2024/, which is what makes the ZIP openable rather than a heap.
The ability to open it by double-clicking. Windows and macOS both read ZIP with nothing installed, which is the whole reason this pair exists: a TAR usually needs an application, and a ZIP does not.
Random access. Each file in a ZIP is compressed on its own, so a reader can pull one out without walking the rest. That is also why it compresses less than the others, and the two facts are the same fact.
What TAR to ZIP costs you
Symbolic links, hard links and special files. They are dropped rather than copied, and the response says how many: a link means something only relative to the machine that wrote it, and carrying one into an archive bound for another machine is how you build a trap. If your TAR holds links, the ZIP will hold the files and not the links.
Unix permissions and ownership. The ZIP is written with a fixed mode and a zero timestamp, deliberately: the same input then always produces the same bytes, and the rights of a machine you do not control mean nothing on yours.
Compression ratio, and often by a lot. A ZIP compresses each file on its own, so it cannot notice that a hundred files resemble each other. On a folder of similar documents the ZIP can be twice the size of the TAR.
Where TAR and ZIP files come from
TAR. Tape ARchive, from 1979, and it does exactly what the name says: it lays files end to end with their metadata and compresses nothing. That is why it is almost always paired with a compressor, and why a bare .tar is usually larger than the files it holds.
ZIP. Phil Katz published it in 1989 and it never went away. Its one decisive property is that each file inside is compressed separately, which is why a ZIP opens instantly and why it compresses worse than the others: nothing is shared between two files that look alike.
If a model is going to read the ZIP
Structure is what survives from the TAR file, and structure is what a model needs. TAR in, ZIP out, with the heading tree intact instead of flattened into one long paragraph.
TAR to ZIP, measured rather than promised
Running TAR to ZIP against the real engine with a real file, Python wrote 309 bytes of ZIP in under a tenth of a second, machine otherwise idle. That is one TAR file on one day and not an average, which is why the number is given together with the file that produced it.
The TAR to ZIP verdict was reached by reading the archive members back and finding a witness word, meaning the output was read back and recognised. Which check was used matters, because they do not all prove the same thing, and a status code of 200 proves nothing whatsoever about whether the ZIP file has anything inside it.
Other ways into ZIP, and what they measured
Among the published routes into ZIP, TAR is the third largest output of the 3 measured. The witness files differ, so this ranks the probe run and not your document.
7Z to ZIP: 309 bytes in under a tenth of a second.
TGZ to ZIP: 309 bytes in under a tenth of a second.
What we will not pretend about TAR to ZIP
A TAR file over 100 MB is refused before the upload finishes rather than after it, so you do not wait for a rejection.
A TAR to ZIP run that passes 110 seconds is killed, and the Python process is killed with it. A run left behind would sit on one of the machine's two cores until somebody noticed.
An archive is the only kind of file whose contents decide how much room they will need once opened, and two kilobytes can hold ten gigabytes of zeros. This is a decompression bomb, it is thirty years old and it still works. Three limits answer it here, and they COUNT rather than trust the header, which can lie: 100 MB uploaded, 250 MB once decompressed, 5000 entries. A TAR past any of them is refused, and the refusal names which one.
Nothing is written to disk on our side, not even temporarily. An archive is also the only kind of file whose contents decide FILE NAMES, and an entry called ../../etc/passwd is an attack as old as the format. Members pass from TAR to ZIP in memory, so there is no destination directory to escape from. The names are cleaned anyway before they enter the ZIP: that part protects whoever opens it, not us.
One TAR file at a time, chosen in the browser. There is nothing else to set up and nothing else on offer.
TAR to ZIP: what people ask
What actually converts my TAR file to ZIP?
Python does it, and its standard library, on a machine we rent and watch. Not a browser trick and not somebody else service: the TAR file is uploaded once, Python runs once, the ZIP comes back, and neither file is kept afterwards.
How long does TAR to ZIP take?
On the file the probe used, Python took under a tenth of a second and wrote 309 bytes of ZIP. That is one real measurement on one real TAR file, not an average and not a promise about yours: a larger TAR takes longer, and past 110 seconds the run is stopped.
What do I lose going from TAR to ZIP?
The one to know about first: Symbolic links, hard links and special files. They are dropped rather than copied, and the response says how many: a link means something only relative to the machine that wrote it, and carrying one into an archive bound for another machine is how you build a trap. If your TAR holds links, the ZIP will hold the files and not the links.
Are my files changed in any way?
No. Each one is read out of the TAR and written into the ZIP byte for byte, with the path it had. What changes is the box around them. The engine counts the members on the way out and refuses the result if the count moved, which is the one way this could go wrong quietly.
Why is the ZIP bigger than the TAR?
Because a ZIP compresses each file on its own, while a TAR compresses the whole bundle at once. On a folder of similar files that difference is large. You are trading size for the fact that anyone can open a ZIP without installing anything.
What happens to symbolic links?
They are dropped, and the response says how many. A link means something only relative to the machine that wrote it; carrying one into an archive bound for another machine is how you build a trap. The files stay, the links do not.
Is there a size limit?
Three, and they are stricter than for other formats for a reason: an archive decides how much room it needs once opened, and two kilobytes can hold ten gigabytes. 100 MB uploaded, 250 MB once decompressed, 5000 entries. Past any of them the answer says which one, rather than a generic refusal.
Is TAR to ZIP free?
There is a free allowance every month, and one TAR to ZIP conversion costs half a credit against it. When the allowance runs out the tool says so and stops, rather than quietly handing you a worse ZIP.