python-hyper / python-hyper/h2

Extensibility framework

オープン
#57 コメント 7 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Enhancement
主要言語
Python
スター
1k
フォーク
187
PR マージ指標
30日以内にマージされた PR はありません

説明

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.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、h2 にある既存の HTTP/2 ステートマシン、フレーム解析、コールバック、設定、エラーコード処理を整理します。次に、hyperframe で必要となる関連作業を確認し、既存の動作を壊さずに拡張によってフレーム、遷移、設定、コールバック、エラーコードを追加する方法を決定します。両方のプロジェクトにおいて、拡張性の設計が定義され、それを支える実装が行われれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
api, networking
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
20/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。