Skip to content

First Stable Release

Choose a tag to compare

@geoff-davis geoff-davis released this 20 Nov 00:30
· 200 commits to main since this release

πŸŽ‰ aiogzip v1.0.0 - First Stable Release

We're excited to announce the first production-ready release of aiogzip, a high-performance asynchronous library for reading and writing gzip-compressed files!

✨ Highlights

  • πŸš€ High Performance: 2.5x faster than standard gzip for text operations
  • ⚑ Truly Asynchronous: Built with asyncio and aiofiles for non-blocking I/O
  • πŸ”„ Drop-in Replacement: Full compatibility with gzip.open() API including seek(), tell(), peek(), and readinto()
  • πŸ“¦ Reproducible Archives: Control gzip mtime and embedded filenames for deterministic builds
  • 🎯 Type-Safe: Distinct AsyncGzipBinaryFile and AsyncGzipTextFile classes with full type hints
  • πŸ“Š CSV Ready: Seamless integration with aiocsv for async CSV processing
  • πŸ—„οΈ tarfile Compatible: Verified against tarfile-style access patterns

πŸ“‹ What's Included

Core Features

  • Full async support for seek(), tell(), peek(), readinto()
  • Gzip header metadata control (mtime, original_filename)
  • Text and binary mode operations with proper encoding/decoding
  • Multi-member gzip archive support
  • Comprehensive error handling with exception chaining

Quality & Documentation

  • 209 tests with 85.13% coverage
  • Python 3.8–3.13 support
  • Fully typed with py.typed marker
  • Comprehensive documentation with examples
  • Security policy and vulnerability reporting process
  • Production/Stable development status

πŸ“¦ Installation

pip install aiogzip

For CSV support:
pip install aiogzip[csv]

πŸš€ Quick Start

import asyncio
from aiogzip import AsyncGzipFile

async def main():
    # Write compressed data
    async with AsyncGzipFile("file.gz", "wb") as f:
        await f.write(b"Hello, async world!")

    # Read compressed data
    async with AsyncGzipFile("file.gz", "rb") as f:
        data = await f.read()
        print(data)

asyncio.run(main())

πŸ“š Documentation

- https://geoff-davis.github.io/aiogzip/
- https://geoff-davis.github.io/aiogzip/examples/
- https://geoff-davis.github.io/aiogzip/performance/
- https://geoff-davis.github.io/aiogzip/api/

πŸ” Security

See https://github.com/geoff-davis/aiogzip/blob/main/SECURITY.md for our security policy and how to report vulnerabilities.

πŸ“„ License

MIT License - see https://github.com/geoff-davis/aiogzip/blob/main/LICENSE for details.