Skip to main content

Happy Eyeballs for asyncio

Project description

aiohappyeyeballs

CI Status Documentation Status Test coverage percentage

Poetry Ruff pre-commit

PyPI Version Supported Python versions License


Documentation: https://aiohappyeyeballs.readthedocs.io

Source Code: https://github.com/aio-libs/aiohappyeyeballs


Happy Eyeballs (RFC 8305)

Use case

This library exists to allow connecting with Happy Eyeballs (RFC 8305) when you already have a list of addrinfo and not a DNS name.

The stdlib version of loop.create_connection() will only work when you pass in an unresolved name which is not a good fit when using DNS caching or resolving names via another method such as zeroconf.

Installation

Install this via pip (or your favourite package manager):

pip install aiohappyeyeballs

License

aiohappyeyeballs is licensed under the same terms as cpython itself.

Example usage

addr_infos = await loop.getaddrinfo("example.org", 80)

socket = await start_connection(addr_infos)
socket = await start_connection(addr_infos, local_addr_infos=local_addr_infos, happy_eyeballs_delay=0.2)

transport, protocol = await loop.create_connection(
    MyProtocol, sock=socket, ...)

# Remove the first address for each family from addr_info
pop_addr_infos_interleave(addr_info, 1)

# Remove all matching address from addr_info
remove_addr_infos(addr_info, "dead::beef::")

# Convert a local_addr to local_addr_infos
local_addr_infos = addr_to_addr_infos(("127.0.0.1",0))

Credits

This package contains code from cpython and is licensed under the same terms as cpython itself.

This package was created with Copier and the browniebroke/pypackage-template project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohappyeyeballs-2.4.3.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

aiohappyeyeballs-2.4.3-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file aiohappyeyeballs-2.4.3.tar.gz.

File metadata

  • Download URL: aiohappyeyeballs-2.4.3.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for aiohappyeyeballs-2.4.3.tar.gz
Algorithm Hash digest
SHA256 75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586
MD5 dcc0ba52e3c350f4edc8a8475d1892d6
BLAKE2b-256 bc692f6d5a019bd02e920a3417689a89887b39ad1e350b562f9955693d900c40

See more details on using hashes here.

Provenance

File details

Details for the file aiohappyeyeballs-2.4.3-py3-none-any.whl.

File metadata

File hashes

Hashes for aiohappyeyeballs-2.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572
MD5 7f7ecb5cc510d790260b2d3b0eff1d14
BLAKE2b-256 f7d8120cd0fe3e8530df0539e71ba9683eade12cae103dd7543e50d15f737917

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page