MagicStack / MagicStack/uvloop
Missing support for `interleave` and `happy_eyeballs_delay` in `create_connection`
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Cython
- Estrelas
- 11.9k
- Forks
- 616
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
- uvloop version: 0.15.2
- Python version: 3.8.5
- Platform: Ubuntu 20.04 amd64
- Can you reproduce the bug with
PYTHONASYNCIODEBUGin env?: Not tested. - Does uvloop behave differently from vanilla asyncio? How?: Yes, fails if
interleaveand/orhappy_eyeballs_delayis set withcreate_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.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece pelo ponto de entrada create_connection do uvloop e leia a documentação de asyncio loop.create_connection vinculada na issue, concentrando-se em interleave e happy_eyeballs_delay. Compare os argumentos compatíveis e o comportamento e, em seguida, verifique se ambas as opções são aceitas e fornecem o comportamento documentado de fallback de IPv6 para IPv4.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- api, networking
- Tipo de issue
- Funcionalidade
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100