STREAMZIP(1perl)

πŸ“¦
version 5.44.0 Β· 2 versions
, in arch rolling

✨ NAME ✨

streamzip β€” bestie, it makes a zip file straight out of stdin πŸ’–

This is one of the pages from the Perl Programmers Reference Guide, and yes it's giving main character energy.


🌸 SYNOPSIS 🌸

producer | streamzip [opts] | consumer
producer | streamzip [opts] -zipfile=output.zip

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the tea: this program reads data from stdin, compresses it into a zip container and, by default, writes a streamed zip file out to stdout. And the best part? No temporary files are created. Not one. Zero. None. πŸŽ€

The zip container written to stdout is, by necessity, written in streaming format. Most programs that read Zip files can cope with a streamed zip file, but β€” and this is the part you don't wanna skip β€” if interoperability is important, and your workflow allows you to write the zip file directly to disk, you can create a non-streamed zip file using the zipfile option. Slay. πŸ’…

πŸ’… OPTIONS πŸ’…

  • -zip64 β€” Create a Zip64-compliant zip container. Use this option if the input is greater than 4Gig.

Default is disabled.

  • -zipfile=F β€” Write the zip container to the filename F.

Use the Stream option to force the creation of a streamed zip file.

  • -member-name=M β€” This option is used to name the file in the zip container.

Default is -.

  • -stream β€” Ignored when writing to stdout.

If the zipfile option is specified, including this option will trigger the creation of a streamed zip file.

Default: Always enabled when writing to stdout, otherwise disabled.

  • -method=M β€” Compress using method M.

Valid method names are

  • store β€” Store without compression
  • deflate β€” Use Deflate compression [Default]
  • bzip2 β€” Use Bzip2 compression
  • lzma β€” Use LZMA compression
  • xz β€” Use xz compression
  • zstd β€” Use Zstandard compression

Note that Lzma compress needs IO::Compress::Lzma to be installed.

Note that Zstd compress needs IO::Compress::Zstd to be installed.

Default is deflate.

  • -0, -1, -2, -3, -4, -5, -6, -7, -8, -9 β€” Sets the compression level for deflate. Ignored for all other compression methods.

-0 means no compression and -9 for maximum compression.

Default is 6

  • -version β€” Display version number
  • -help β€” Display help

🌈 Examples 🌈

Create a zip file bt reading daa from stdin πŸ™ˆ (yes bestie, that's the vibe, we're reading data and zipping it)

$ echo Lorem ipsum dolor sit | perl ./bin/streamzip >abcd.zip

Check the contents of abcd,zip with the standard unzip utility

Archive:  abcd.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       22  2021-01-08 19:45   -
---------                     -------
       22                     1 file

Notice how the Name is set to -. That is the default for a few zip utilities where the member name is not given.

If you want to explicitly name the file, use the -member-name option as follows

$ echo Lorem ipsum dolor sit | perl ./bin/streamzip -member-name latin >abcd.zip

$ unzip -l abcd.zip
Archive:  abcd.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       22  2021-01-08 19:47   latin
---------                     -------
       22                     1 file

🧚 When to write a Streamed Zip File 🧚

A Streamed Zip File is useful in situations where you cannot seek backwards/forwards in the file.

A good examples is when you are serving dynamic content from a Web Server straight into a socket without needing to create a temporary zip file in the filesystem. No temp file, no problem, periodt.

Similarly if your workflow uses a Linux pipelined commands.


🫢 SUPPORT 🫢

General feedback/questions/bug reports should be sent to https://github.com/pmqs/IO-Compress/issues (preferred) or https://rt.cpan.org/Public/Dist/Display.html?Name=IO-Compress.


πŸ‘‘ AUTHOR πŸ‘‘

Paul Marquess pmqs@cpan.org.


Copyright (c) 2019-2026 Paul Marquess. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


okay that's the whole page bestie, you ate that πŸ“ this was the streamzip page, perl v5.44.0, dated 2026-10-17 β€” go forth and pipe things into things πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from
  • arch rolling: perl 5.44.0-1 Β· Artistic-1.0-Perl AND GPL-1.0-or-later
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms