Research HTTP/2 support and protocol negotiation
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- cli, networking
Línea de trabajo
Comienza con Cargo.toml y src/http.rs para verificar la configuración actual, limitada a HTTP/1, y la configuración del conector. Investiga las preguntas enumeradas sobre interoperabilidad, recursos, negociación, pooling y comportamiento del protocolo en los targets compatibles. Se considera terminado cuando haya una recomendación documentada sobre HTTP/2, tradeoffs medidos, un plan de implementación si se recomienda añadir soporte y documentación pública de runtime actualizada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 121
- Forks
- 45
- Merge medio
- 19 h 1 min
- PR fusionados (30 d)
- 16
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de roc-lang/basic-cli
-
Unix socket supportAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 32/100
Los mantenedores suelen responder en 1 día
Todos los issues de roc-lang/basic-cli
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
aws-samples/sample-pacer#76 ·
Los mantenedores suelen responder en 1 día
-
mime-type element is mandatoryAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
axodotdev/cargo-dist#2523 ·
Los mantenedores suelen responder en 2 días