Download the PHP package thesis/grpc-server without Composer
On this page you can find all versions of the php package thesis/grpc-server. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download thesis/grpc-server
More information about thesis/grpc-server
Files in thesis/grpc-server
Package grpc-server
Short Description Async gRPC server for PHP with HTTP/2 transport, unary and streaming RPC handlers, interceptors, and graceful shutdown.
License MIT
Informations about the package grpc-server
thesis/grpc-server
Read-only subtree split from
https://github.com/thesis-php/grpc.Do not open issues/PRs here. Use the monorepo:
Async gRPC server for PHP with HTTP/2 transport, unary and streaming RPC handlers, interceptors, and graceful shutdown.
Contents
- Installation
- Requirements
- Implementing a service
- Starting the server
- TLS and mTLS
- Compression
- Interceptors
- RPC types
- Stream decorators
- Graceful shutdown
Installation
Requirements
To generate gRPC server interfaces and registries from .proto, use:
Implementing a service
Starting the server
Default bind address: 0.0.0.0:50051.
Use withAddresses() to override bind addresses:
TLS and mTLS
Practical recommendations:
- Ensure server certificate SAN (
DNS/IP) matches what clients pass viawithPeerName(). - For mTLS, use certificates with correct
extendedKeyUsage(serverAuthfor server,clientAuthfor client). - Prefer certificates signed by a trusted CA and modern algorithms (for example, SHA-256).
Compression
Register one or more compressors on the server:
Interceptors
Interceptors let you apply cross-cutting server logic like auth, audit, tracing, and request validation around every RPC.
RPC types
Generated server interfaces expose all four gRPC RPC models directly:
- unary request/response
- client streaming
- server streaming
- bidirectional streaming
Unary example:
Client streaming example:
Server streaming example:
Bidirectional streaming example:
Stream decorators
If you need per-message interception (not just per-RPC), decorate server streams.
Graceful shutdown
Server::stop() stops accepting new requests and waits for active handlers.
You can pass TimeoutCancellation to bound wait time.
Handlers receive Cancellation; they should respect it so shutdown can finish promptly.
All versions of grpc-server with dependencies
amphp/http Version ^2.1
amphp/http-server Version ^3.4.5
amphp/socket Version ^2.3
amphp/sync Version ^2.3
psr/log Version ^3.0
thesis/grpc-protocol Version ^0.1.5