python-hyper / python-hyper/h2
Wanted to extend hpack encoders or allow different Encoder and Decoders to be used.
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 1k
- Forks
- 187
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
I have a library coming out which I made as a drop in replacement for python hpack called cyhpack and I wanted to try developing a better solution for injecting my own Decoder and Encoder which runs ls-hpack under the hood. As of currently, here is my workaround but I was wondering if a better implementation could be implemented such as a factory attribute or an Abstract class could be made to accommodate my version and the pure python one as well?
from __future__ import annotations
from h2.config import H2Configuration
from h2.connection import H2Connection as _H2Connection
from .hpack import Decoder, Encoder
class H2Connection(_H2Connection):
"""
Contains an overridable version of H2Connection that drops
python hpack in exchange for cyhpack for faster performance
and speed.
"""
def __init__(self, config: H2Configuration | None = None):
super().__init__(config)
self.encoder = Encoder()
self.decoder = Decoder()
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par lire h2.connection.H2Connection et H2Configuration, puis comparez la manière dont l’Encoder et le Decoder actuels sont initialisés avec la solution de contournement par sous-classe présentée dans l’issue. Le travail est terminé lorsque les appelants peuvent utiliser d’autres implémentations d’Encoder et de Decoder sans maintenir une sous-classe personnalisée de H2Connection, avec une couverture du chemin de configuration.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- api, networking
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100