Py-zipstream-ng

Jul 20, 2023

Modern and easy to use streamable zip file generator

zipstream-ng is a modern and easy to use streamable zip file generator. It can package and stream many files and folders on the fly without needing temporary files or excessive memory.

Includes the ability to calculate the total size of the stream before any data is actually added provided no compression is used. This makes it ideal for use in web applications since the total size can be used to set the Content-Length header without having to generate the entire file first.

Features

  • Generates zip data on the fly as it’s requested.
  • Can calculate the total size of the resulting zip file before generation even begins.
  • Flexible API Typical use cases are simple, complicated ones are possible.
  • Supports zipping data from files, bytes, strings, and any other iterable objects.
  • Threadsafe Won’t mangle data if multiple threads concurrently add/read data to/from the same stream.
  • Includes a clone of Python’s http.server module with zip support added. Try python -m zipstream.server.
  • Automatically uses Zip64 extensions, but only if they are required.
  • No external dependencies.


Checkout these related ports:
  • Zutils - Utilities for searching in bzip2, gzip, lzip, and xz archives
  • Zstr - C++ header-only ZLib wrapper
  • Zstd - Fast real-time compression algorithm
  • Zpaqfranz - Swiss army knife for the serious backup manager
  • Zopfli - Zopfli Compression Algorithm
  • Zoo - Manipulate archives of files in compressed form
  • Zlib-ng - Fork of the zlib data compression library
  • Zipper - Tool for inspecting the contents of a compressed archive
  • Zipmix - Produce .ZIP file from two other ones with the best compressed files
  • Zip - Create/update ZIP files compatible with PKZIP
  • Zchunk - Compressed file format that splits the file into independent chunks
  • Xpk - The eXternal PacKer (XPK) library system
  • Xmill - Efficient compressor for XML
  • Xdms - Tool for decompressing Amiga DMS files
  • Xarchiver - Desktop-agnostic GTK frontend to various archiving tools