Skip to content

H2C frame types and HPACK integration #4

@FumingPower3925

Description

@FumingPower3925

Summary

HTTP/2 cleartext (H2C) frame handling and HPACK header compression. Engine-agnostic.

Deliverables

  • Frame type definitions (DATA, HEADERS, PRIORITY, RST_STREAM, SETTINGS, PUSH_PROMISE, PING, GOAWAY, WINDOW_UPDATE, CONTINUATION)
  • SETTINGS frame negotiation (SETTINGS_MAX_CONCURRENT_STREAMS, SETTINGS_INITIAL_WINDOW_SIZE, etc.)
  • HEADERS/DATA frame processing
  • RST_STREAM and GOAWAY handling
  • PING/PONG for connection health
  • WINDOW_UPDATE flow control
  • Stream state machine (idle → open → half-closed → closed)
  • HPACK integration via golang.org/x/net/http2/hpack
  • Port from old_celeris/internal/h2/ (frame, stream, transport)

Tests

  • H2C connection preface exchange (PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n)
  • SETTINGS negotiation and acknowledgment
  • HPACK encode/decode round-trip
  • Stream state transitions (full lifecycle)
  • Flow control window management
  • GOAWAY graceful shutdown
  • RST_STREAM error handling
  • Concurrent streams (up to SETTINGS_MAX_CONCURRENT_STREAMS)

SDD Reference

Sections 5.4, 5.7

Dependencies

Depends on #1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions