NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2104 most downloaded on PyPI
A modern and easy to use streamable zip file generator
Last release 1 months ago
20 Aug 2026
Release timing varies
gaps range from 2 weeks to 12 months
Nearly every release is documented
notes for 19 of 19 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
20 releases · first in 2021
One column per quarter.
Fix length calculation when adding extended ascii filenames (only affects Python 3.13.14+, 3.14.6+, 3.15+)
This project publishes no release notes. Between v1.9.2 and v1.9.3 there were 2 commits, 1 of them substantive:
Restore zipserver command that was missed during build modernization
zipserver command that was missed during build modernizationThis project publishes no release notes. Between v1.9.1 and v1.9.2 there were 5 commits, 3 of them substantive:
Declare support for Python 3.15
This project publishes no release notes. Between v1.9.0 and v1.9.1 there were 5 commits, 4 of them substantive:
Add support for Zstandard compression where available (Python 3.14+)
This project publishes no release notes. Between v1.8.0 and v1.9.0 there were 10 commits, 9 of them substantive:
Support adding directory contents at the top level of the ZipStream by specifying an arcname of /
ZipStream by specifying an arcname of /This project publishes no release notes. Between v1.7.1 and v1.8.0 there were 4 commits, 3 of them substantive:
Fix issue where it was possible to add paths with arcnames that didn't match the path contents (file ending with "/", directory not ending with "/")
This project publishes no release notes. Between v1.7.0 and v1.7.1 there were 2 commits, 1 of them substantive:
Deprecate ZipStream.get_info. It will continue to work until the next major version but will now emit a warning when used.
ZipStream.info_list. This function
replaces ZipStream.get_info which would only provide information on files that had already been
streamed.ZipStream.get_info. It will continue to work until the next major version but
will now emit a warning when used.ZipStream objects by updating the final size of the stream as
files are added instead of storing the required information so the size could be calculated later.This project publishes no release notes. Between v1.6.0 and v1.7.0 there were 7 commits, 5 of them substantive:
Add the ability to provide a custom "walk" function to ZipStream.add_path for more control over how directories are walked.
ZipStream.add_path for more control
over how directories are walked.ValueError to a
more appropriate FileNotFoundError.os.stat calls required to add a file.ZipStream.add is provided a size alongside an iterable, the size will now be used to
determine if Zip64 extensions are needed.This project publishes no release notes. Between v1.5.0 and v1.6.0 there were 11 commits, 10 of them substantive:
add_path walksAdd ZipStream.mkdir method to make an empty directory inside the stream.
ZipStream.mkdir method to make an empty directory inside the stream.ZipStream.get_info would return incorrect values for compress_level in
cases where the compression level was specified, but had no effect (ie. when using
ZIP_STORED/ZIP_LZMA)./ could be added with an empty arcname.This project publishes no release notes. Between v1.4.0 and v1.5.0 there were 7 commits, 6 of them substantive:
The expected size of data added to a ZipStream is now validated as it's generated. For unsized ZipStreams a mismatch in expected vs. actual size emits
ZipStream is now validated as it's generated. For unsized
ZipStreams a mismatch in expected vs. actual size emits a warning, for sized ZipStreams a
RuntimeError is raised.ZipStreams, add the option to provide the total size of an iterable when adding it.
When the size is provided, the iterable will no longer have to immediately be read into memory to
compute it.This project publishes no release notes. Between v1.3.5 and v1.4.0 there were 4 commits, 2 of them substantive:
Fix issue where adding data via an iterable to an unsized ZipStream wouldn't fully implement Zip64 extensions. This caused some versions of 7z to emit
ZipStream wouldn't fully implement
Zip64 extensions. This caused some versions of 7z to emit warnings (but still properly extract
the data).Fix issue where adding files with multibyte characters in the filename would lead to an incorrect zip size being calculated.
Fix issue where directly adding an empty folder would give it the wrong name in the archive and lead to an incorrect zip size being calculated.
Fix documentation issue caused by the import shuffling in v1.3.1
ZipStream via add()Allow importing functionality from zipstream.ng as well as zipstream to avoid namespace collisions with other projects that provide a zipstream module
zipstream.ng as well as zipstream to avoid namespace
collisions with other projects that provide a zipstream module.Add a last_modified property to ZipStream objects that returns a datetime of the most recent modified date of all the files in the stream.
last_modified property to ZipStream objects that returns a datetime of the most recent
modified date of all the files in the stream.Fix issue where adding empty directories would lead to an incorrect zip size being calculated.
ZipStream's size multiple times while adding data wouldn't
properly check if Zip64 extensions were being used, causing an incorrect size to be calculated.Add a sized property to ZipStream objects that checks if the size can be calculated for it
sized property to ZipStream objects that checks if the size can be calculated for itZipStream.from_path to generate a sized ZipStream if no compression is usedAdd support for Python 3.5 and 3.6
[v1.0.0]: https://github.com/pR0Ps/zipstream-ng/commit/72b2721c0593fb99fdc2d9537f52b1c3bc1d736f [v1.1.0]: https://github.com/pR0Ps/zipstream-ng/compar
Your coding agent can read these notes before it upgrades. Set up the MCP server →