python-hyper / python-hyper/h2
Extensibility framework
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 1k
- Forks
- 187
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
HTTP/2 is extendable: it's one of its great strengths. It would be really nice if H2 was relatively easily extensible. We should aim to start supporting pluggable HTTP/2 extensions.
What do we need to do this? Well, the answer is: what can extensions do?
- They can add new frames. This means we need to be able to add:
- new frame types that can be successfully parsed;
- new transitions in the state machine, both connection and stream, that occur when a new frame is received;
- specific frame callbacks, both connection and stream, that allow manipulating the connection and stream objects;
- allow new frames to follow the state machine transitions and callbacks of a pre-existing frame;
- They can add new state machine transitions in the absence of new frames, or adjust the existing state machine transitions;
- They can add new settings. We need to be able to inject useful representations of settings, and allow callbacks for those settings if they're changed;
- They can add new error codes.
This will also require work in hyperframe.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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.
Línea de trabajo
Comienza por documentar la máquina de estados HTTP/2 existente, el análisis de frames, los callbacks, los settings y la gestión de códigos de error en h2. Después, revisa el trabajo relacionado necesario en hyperframe y determina cómo las extensiones podrían añadir frames, transiciones, settings, callbacks y códigos de error sin romper el comportamiento existente. Se considera terminado cuando exista un diseño de extensibilidad definido y una implementación de soporte en ambos proyectos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- api, networking
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 20/100