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.
Implement gRPC server support on top of the existing HTTP/2 (and HTTP/3) stack.
Scope
grpc-status,grpc-message) over HTTP/2 and HTTP/3.application/grpc,application/grpc+proto; optionalapplication/grpc-webfor browser clients.grpc-timeout.grpc-goreference client.Acceptance
grpc-gointerop test suite passes for the implemented patterns.