Skip to content

gRPC support (HTTP/2 + HTTP/3) #4

@EdmondDantes

Description

@EdmondDantes

Implement gRPC server support on top of the existing HTTP/2 (and HTTP/3) stack.

Scope

  • gRPC framing: 5-byte length-prefixed messages, compression flag.
  • Trailers (grpc-status, grpc-message) over HTTP/2 and HTTP/3.
  • Unary, server-streaming, client-streaming, and bidirectional-streaming RPC patterns.
  • Content-types: application/grpc, application/grpc+proto; optional application/grpc-web for browser clients.
  • Deadline propagation via grpc-timeout.
  • Integration with PHP coroutines so each stream is a coroutine.
  • Optional message compression (gzip).
  • PHPT + interop tests against grpc-go reference client.

Acceptance

  • grpc-go interop test suite passes for the implemented patterns.
  • Works over both HTTP/2 (h2c + h2) and HTTP/3.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

Todo

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions