python-hyper / python-hyper/h2
Extensibility framework
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 1k
- Fork
- 187
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia mappando la macchina a stati HTTP/2 esistente, il parsing dei frame, i callback, le impostazioni e la gestione dei codici di errore in h2. Esamina quindi il lavoro correlato richiesto in hyperframe e determina come le estensioni potrebbero aggiungere frame, transizioni, impostazioni, callback e codici di errore senza interrompere il comportamento esistente. Il lavoro è completato quando sono disponibili un design di estensibilità definito e un’implementazione di supporto in entrambi i progetti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- api, networking
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 20/100