MagicStack / MagicStack/uvloop

Missing support for `interleave` and `happy_eyeballs_delay` in `create_connection`

Đang mở
#406 6 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

help wanted missing feature
Ngôn ngữ chính
Cython
Star
11.9k
Fork
616
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

  • uvloop version: 0.15.2
  • Python version: 3.8.5
  • Platform: Ubuntu 20.04 amd64
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in env?: Not tested.
  • Does uvloop behave differently from vanilla asyncio? How?: Yes, fails if interleave and/or happy_eyeballs_delay is set with create_connection.

asyncio loop.create_connection supports the interleave and happy_eyeballs_delay keyword arguments to enable RFC 8305 "Happy Eyeballs" IPv6-to-IPv4 fallback since Python 3.8. The arguments are documented here: https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_connection

The corresponding function in uvloop does not accept these arguments. These would be nice to have because I'm working on a server that proxies requests to external third-party servers which occasionally have a broken IPv6 configuration and traditional connect timeout behavior causes quite a bit of delay.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu tại điểm vào create_connection của uvloop và đọc tài liệu asyncio loop.create_connection được liên kết trong issue, tập trung vào interleave và happy_eyeballs_delay. So sánh các đối số được hỗ trợ và hành vi, sau đó xác minh rằng cả hai tùy chọn đều được chấp nhận và cung cấp hành vi fallback từ IPv6 sang IPv4 được tài liệu hóa.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
api, networking
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.