stream-zip
Python function to construct a ZIP archive with stream processing - without having to store the entire ZIP in memory or disk
Decision gist · record as of 2026-08-14
Yes. stream-zip is actively maintained, has no security vulnerabilities, low install friction (single pure-Python dependency), and solves a genuine problem for streaming ZIP generation in memory-constrained or real-time scenarios. The permissive MIT license poses no restrictions. Install it if you need to generate ZIPs on-the-fly in a web server or similar streaming context.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.6.7 or later; pycryptodome is required at runtime for encryption features.
- Low install friction: pure Python wheel with a single runtime dependency (pycryptodome).
- Active maintenance with recent commits; last release 191 days ago suggests stable, infrequent updates rather than abandonment.
License · maintenance · safety
permissive license (permissive) — MIT license (permissive) means you can use, modify, and distribute stream-zip freely in commercial and private projects with minimal restrictions.
last release 2026-02-04 (191 days) · last repo commit 2026-08-10 · 20 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 604,403 downloads/mo, #5,805 on PyPI
Alternatives
Verify before relying
pip install stream-zip
from stream_zip import stream_zip
for chunk in stream_zip(files):
# yield or write chunk to response- Whether the async interface (which uses threads) is suitable for high-concurrency web servers or if there are known performance bottlenecks.
- Compatibility with specific ZIP clients when using extended timestamps or symbolic links in generated archives.
- Memory overhead characteristics when streaming very large files (multi-gigabyte Zip64 archives).
What it is and what it does
stream-zip is a Python library for generating ZIP archives incrementally without buffering the entire file in memory or on disk. Instead of constructing a complete ZIP in advance, it yields compressed chunks as they are ready, making it ideal for web servers that need to start sending compressed data before all source files have been read. It supports both the legacy Zip32 format and the modern Zip64 format for files larger than 4 GiB, and can encrypt archives with AES-256 passwords following the WinZip AE-2 specification.
The library handles symbolic links, directories (including empty ones), file permissions, and extended timestamps. It depends only on pycryptodome for encryption operations and is designed for memory-constrained environments where traditional ZIP libraries would require staging the entire archive. The package is actively maintained, has no known vulnerabilities, and provides both synchronous and asynchronous (thread-based) interfaces.
Use it for
- Generate downloadable ZIP files in web applications without buffering the entire archive to disk or memory.
- Stream large Zip64 archives (>4 GiB) from a server to clients in real-time as data becomes available.
- Create password-protected, AES-256-encrypted ZIP files on-demand for secure file distribution.
- Build ZIP archives containing symbolic links and directory structures in resource-constrained environments.
- Implement on-demand compression pipelines where source data is fetched incrementally and streamed directly into the ZIP.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
stream-zip is actively maintained, has no security vulnerabilities, low install friction (single pure-Python dependency), and solves a genuine problem for streaming ZIP generation in memory-constrained or real-time scenarios. The permissive MIT license poses no restrictions. Install it if you need to generate ZIPs on-the-fly in a web server or similar streaming context.
Install
stream-zip on PyPI
Before you install
Low install friction: pure Python wheel with a single runtime dependency (pycryptodome). Active maintenance with recent commits; last release 191 days ago suggests stable, infrequent updates rather than abandonment.
Requires Python 3.6.7 or later; pycryptodome is required at runtime for encryption features.
License in practice
MIT license (permissive) means you can use, modify, and distribute stream-zip freely in commercial and private projects with minimal restrictions.
Quickstart
pip install stream-zip
from stream_zip import stream_zip
for chunk in stream_zip(files):
# yield or write chunk to response
Verify before relying
- Whether the async interface (which uses threads) is suitable for high-concurrency web servers or if there are known performance bottlenecks.
- Compatibility with specific ZIP clients when using extended timestamps or symbolic links in generated archives.
- Memory overhead characteristics when streaming very large files (multi-gigabyte Zip64 archives).
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.6.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagepycryptodome |
| Maintenance | Actively maintained 191 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 604,403 / month, #5,805 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Topic :: System :: Archiving :: Compression |
Evidence: stream_zip-0.0.84-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “stream zip file generation”
- stream-zipConstructs ZIP archives on-the-fly without storing the entire file in…
- zipstream-newGenerates zip archives as iterators of byte chunks, enabling…
- zipstream-ngGenerates zip files on-the-fly by streaming data without temporary…
Give your agent the search over MCP, or paste the wish link into any chat.
More Compression packages
Provides Python bindings to the Brotli compression library, enabling lossless compression and decompression using a modern LZ77 variant with Huffman coding and context modeling.
Install it if you need Brotli compression in Python; the API is straightforward and the library is battle-tested.
Provides Zstandard compression support for Python versions before 3.14, backporting the standard library's zstd module along with zstd-enabled tarfile and zipfile modules.
Zopfli is a Python binding for Google's Zopfli compression library, providing higher-density compression for zlib and gzip formats than standard algorithms, with tunable iteration and block-splitting parameters.
Python binding for Google's Snappy compression library, providing fast compression and decompression of data via the cramjam backend.
However, dormant maintenance (715 days since last release) means security or compatibility issues may not be addressed quickly.
pyzipper replaces Python's standard zipfile module to read and write AES-encrypted zip archives, using the WinZip AES encryption specification.
Provides Python bindings to the Zstandard (zstd) compression library with an API similar to bz2, lzma, and zlib modules.
See also stream-unzip · zipstream-new · zipstream-ng · remotezip2 · zipstream · remotezip · conda-package-streaming · nominal-streaming · nbzip