Skip to content

Releases: dnikolayev/async-unzip

v0.8.1

Choose a tag to compare

@dnikolayev dnikolayev released this 20 Jun 22:25

Patch release correcting the PyPI project link to the canonical repository and keeping release artifacts scoped to package files.

v0.8.0

Choose a tag to compare

@dnikolayev dnikolayev released this 12 Jun 19:47
  • uvloop is no longer enabled as an unconditional import-time side effect. It still auto-installs its event-loop policy by default, but only when the host application hasn't already set a policy and hasn't set the ASYNC_UNZIP_NO_UVLOOP environment variable.
  • Debug output now goes through the logging module (async_unzip.unzipper logger at DEBUG level) instead of print(). The __debug parameter is renamed debug; __debug remains a deprecated keyword-only alias that emits a DeprecationWarning.
  • Stopped mutating the DECOMPRESS_BACKEND/LAST_USED_BACKEND module globals on every call (concurrent calls raced); the names remain as constants.
  • Packaging migrated to PEP 621 (pyproject.toml); setup.py removed. Added a py.typed marker and type hints on the public API, checked by mypy in CI. Added a coverage floor to CI.
  • unzip_stream(in_memory=True) removal is now scheduled for 1.0.0.
  • CI/CD verification now includes black, isort, flake8, pylint, mypy, and coverage-gated pytest before publishing.

v0.7.0

Choose a tag to compare

@dnikolayev dnikolayev released this 12 Jun 11:43

Highlights

Security/integrity hardening and opt-in resource limits.

  • Resource limits (keyword-only): max_entries, max_entry_size, max_total_uncompressed_size, and max_archive_size (streams) raising a new LimitExceeded exception.
  • Integrity validation (from 0.6.1): fixes a decompression DoS, verifies CRC-32 / exact size / truncation, and extracts atomically.
  • Reject unsupported compression methods (bzip2/lzma) with NotImplementedError on both paths.
  • Deprecate unzip_stream(in_memory=True).
  • Top-level exports: from async_unzip import unzip, unzip_stream, LimitExceeded.

See the README changelog for full 0.6.1 + 0.7.0 details.