Skip to content

v0.2.0

Choose a tag to compare

@arman-bd arman-bd released this 04 Nov 09:15
· 8 commits to main since this release
b914125

Release Changelog v0.2.0

🚀 Major Features

HTTP/2 Support

  • Added native HTTP/2 support with http2=True parameter for Client() and Session()
  • Per-request HTTP/2 override capability
  • Full httpx-compatible API design
  • 35 comprehensive test cases covering HTTP/2 functionality

Async API (Native asyncio)

  • Complete async/await support with AsyncClient class
  • Event-driven async request manager with buffer pooling
  • Async convenience functions (async_get, async_post, etc.)
  • Windows IOCP implementation for true async I/O on Windows
  • Linux/Mac non-blocking socket support

Windows Platform Support

  • Full Windows compatibility with MSVC compiler
  • Comprehensive POSIX-to-Windows compatibility layer
  • IOCP (I/O Completion Ports) dispatcher for async operations
  • All 323 tests passing on Windows

Connection Pooling Optimizations

  • Removed expensive validation overhead (eliminates 4+ system calls per request)
  • Simplified pool validation to reduce fcntl() and recv() overhead
  • TLS fingerprint persistence for pooled connections
  • Automatic retry for stale pooled connections

Architecture Refactor

  • Split monolithic core into specialized modules (client, network, TLS, HTTP1/2, proxy, cookies, compression)
  • Added buffer pooling for improved concurrency
  • Centralized version management in pyproject.toml

🔧 Bug Fixes

  • Fixed SSL_shutdown blocking on proxy/stale connections
  • Fixed async HTTP connection state transitions under concurrent load
  • Fixed TLS information returning None on connection reuse
  • Fixed BoringSSL MD5 compatibility
  • Fixed Windows C++ compilation with explicit type casts
  • Fixed Docker build issues with nghttp2 detection
  • Improved connection error detection (30s → 100ms)
  • Fixed proxy routing to distinguish HTTP vs HTTPS destinations

📚 Documentation

  • Added ReadTheDocs documentation with Sphinx
  • Created quickstart guide and API reference
  • Added comprehensive benchmark results
  • Debug output control with HTTPMORPH_DEBUG flag

🧪 Testing

  • 311+ tests passing (8 skipped as expected)
  • Added real proxy integration tests
  • Added async test suite
  • CI improvements with proper timeout handling

Files Changed: 40+ files | Additions: 4,000+ lines | Deletions: 380+ lines