aio-libs/aiohappyeyeballs
Last release: 1 week ago
aiohappyeyeballs provides a Happy Eyeballs style connection helper for asyncio use cases where you already have a list of addrinfo and not a DNS name. It is useful when you do DNS caching or resolve names via other mechanisms, such as zeroconf, and want to connect using those pre-resolved addresses.
Project status
- Actively maintained: The repository shows a very recent upstream push (2026-05-20), and multiple recent versioned updates were published on 2026-05-20 (v2.7.0, v2.6.2), indicating ongoing maintenance rather than abandonment.
- Update cadence: There was a cluster of updates around 2025-02-07 and 2025-03-11 to 2025-03-12, then a long quiet period until early 2026, followed by another burst on 2026-05-20 (v2.7.0, v2.6.2).
AI summary generated 1 week ago
Recent updates
v2.7.0
1 week agov2.7.0 primarily adds support for Python 3.14. The release notes only document this single change, and the code diff largely aligns with that. There is also an undocumented CI workflow configuration change related to the semantic-release action.
Featuresv2.6.2
1 week agov2.6.2 adds a clearer failure mode when `start_connection()` is called with empty `addr_infos`, and includes a small refactor around event loop retrieval. Most other changes shown in the diff are type-annotation and tooling updates rather than new runtime features.
v2.6.1
3/12/2025v2.6.1 is a small patch release focused on fixing an import-time TypeError affecting older Python versions. The code changes center on how Callable is imported/defined for Python 3.9 compatibility, and the release metadata/versioning is updated accordingly.
v2.6.0
3/11/2025Release v2.6.0 updates version metadata and focuses exclusively on publishing improved documentation. The code changes shown are limited to adding an API reference page and adjusting Sphinx configuration, with no runtime logic changes in the library itself.
Featuresv2.5.0
3/6/2025Release v2.5.0 adds support for a user-provided callback to customize socket creation when establishing connections. This is wired through start_connection into the internal socket creation logic, along with new exported typing for the callback signature.
Featuresv2.4.8
3/4/2025v2.4.8 is a bug fix release focused on connection races in happy-eyeballs mode. The change ensures sockets created by cancelled/staggered tasks are properly closed to reduce resource leaks when multiple tasks can be winners.
v2.4.7
3/4/2025Release v2.4.7 focuses on fixing test execution issues related to handling SystemExit and cleaning up event loop resources. The core library API appears unchanged, with modifications concentrated in internal staggered-connection handling and test infrastructure.
v2.4.6
2/7/2025v2.4.6 is a bug fix release. The main change is in the staggered race logic to ensure timers are properly cancelled when the staggered race completes.
v2.4.5
2/7/2025v2.4.5 is described in the release notes as a set of packaging bug fixes related to classifier handling (preventing unwanted enrichment and Poetry recalculation). The code diff, however, shows broader changes including dropping older Python compatibility and updating core project metadata and build tooling.
Breakingv2.4.4
11/30/2024v2.4.4 is a small maintenance release that addresses an error-handling edge case when a socket close fails during connection attempts. The release notes only document this fix.
v2.4.3
9/30/2024v2.4.3 contains two fixes: a rewrite of staggered_race to be race safe, and updated handling for uvloop connect failures that raise RuntimeError. The code diff is larger than the short release notes, including internal refactors around where staggered_race lives and changes to exception typing and raising behavior.
v2.4.2
9/27/2024v2.4.2 is a small bugfix release that changes how `staggered_race` is sourced on newer Python versions. Instead of relying entirely on `asyncio` for Python 3.12+, it adds a local implementation copied from the standard library to avoid issues on those versions.