Research HTTP/2 support and protocol negotiation
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Documentação
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- rust
- Domínio
- cli, networking
Direção de pesquisa
Comece por Cargo.toml e src/http.rs para verificar a configuração atual limitada a HTTP/1 e a configuração do conector. Investigue as questões listadas sobre interoperabilidade, recursos, negociação, pooling e comportamento do protocolo nos targets compatíveis. O trabalho estará concluído quando houver uma recomendação documentada sobre HTTP/2, tradeoffs medidos, um plano de implementação caso o suporte seja recomendado e documentação pública de runtime atualizada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Context
The current HTTP stack enables only the http1 features in Cargo.toml and constructs its connector with enable_http1() in src/http.rs. HTTP/1.1 is widely interoperable, but HTTP/2 can improve connection reuse, multiplexing, and header compression, and some services or protocols require it.
Adding HTTP/2 also has costs and design questions. It introduces more code and dependencies into every statically linked application, and the host currently creates a new Hyper client for each request, which limits the benefit of multiplexing and connection pooling.
Research questions
Investigate and document:
- actual interoperability or performance needs for HTTP/2 in basic-cli applications;
- binary-size, compile-time, memory, and runtime costs on every supported target;
- supporting HTTP/1.1 and HTTP/2 through TLS ALPN negotiation versus exposing an explicit protocol choice;
- whether cleartext HTTP/2 (
h2c) is in scope; - whether the HTTP client should be shared across requests to make connection pooling and HTTP/2 multiplexing useful;
- request, response, timeout, and error behavior that may differ by protocol;
- tests for HTTP/1.1 fallback, successful HTTP/2 negotiation, and protocol-specific failures.
Desired outcome
Record whether basic-cli should support HTTP/2, with a recommendation and measured tradeoffs. If support is recommended, define an implementation plan that preserves HTTP/1.1 compatibility and keeps the public API and runtime behavior explicit.
Keep the public runtime documentation updated with the chosen behavior.
Related work
- #448 documents the current HTTP/1-only behavior.
- #436 tracks bounded HTTP response bodies.
- #438 tracks stable HTTP transport error classification.
- Linguagem predominante
- Rust
- Estrelas
- 121
- Forks
- 45
- Merge médio
- 19h 1min
- PRs com merge (30d)
- 16
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
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.
Mais de roc-lang/basic-cli
-
Unix socket supportAberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 52/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 32/100
Mantenedores costumam responder em até 1 dia
Todas as issues de roc-lang/basic-cli
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 3 dias
-
state:triage-needed
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Automattic/harper#4503 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
tobi/walgit#84 · 1 comentário ·
Mantenedores costumam responder em até 2 dias