Skip to content

v0.2.1

Choose a tag to compare

@arman-bd arman-bd released this 04 Nov 23:38
· 7 commits to main since this release
e15802e

Release Notes - v0.2.1

Overview

This release includes major performance improvements, async support, Windows compatibility, and enhanced documentation. PR #20 initially attempted to release version 0.2.0 but encountered a release error, which was subsequently fixed in PR #21.

What's Changed

Async Architecture

  • AsyncClient: Native asyncio support with event-driven architecture
  • Non-blocking I/O: Complete async request manager with buffer pooling
  • Windows IOCP: Full I/O Completion Ports implementation for Windows async support
  • Async convenience functions (async_get, async_post, etc.)

Platform Support

  • Windows Compatibility: Full MSVC support with POSIX compatibility layer
  • Cross-platform Threading: Windows-native synchronization primitives
  • All Tests Passing: tests pass on Linux, macOS, and Windows

Architecture Refactor

  • Modular core split from monolithic httpmorph.c into specialized modules:
    • client.c, network.c, tls.c, http1.c, http2.c
    • proxy.c, cookies.c, compression.c
    • async_request_manager.c, buffer_pool.c

Documentation

  • ReadTheDocs Integration: Sphinx-based documentation with Read the Docs theme
  • Added quickstart.rst and api.rst with examples
  • Version centralization in pyproject.toml as single source of truth

Bug Fixes

  • Fixed SSL_shutdown blocking on proxy/stale connections
  • Added automatic retry for stale pooled connections
  • Fixed async HTTP state transitions preventing "Send failed" errors
  • Improved proxy connection handling and error detection
  • Fixed TLS information capture for reused connections

Build System

  • Centralized version management in pyproject.toml
  • Enhanced CI/CD workflows with proper secret handling
  • Docker build fixes for nghttp2 library detection

Code Quality

  • Applied ruff formatting across all Python files
  • Fixed all linting errors
  • Improved type hints and error handling

Technical Details

Files Changed: 40+ files, 615 additions, 322 deletions

Test Coverage: 323 tests passing (8 skipped), 0 failures

Notes

  • PR #20 encountered a release error during the initial 0.2.0 release attempt
  • PR #21 successfully fixed the release issue and completed the v0.2.1 deployment

Contributors