Overview
gRPC
gRPC is a transport mechanism for request/response and (non-persistent) streaming use cases. See Why gRPC? for more information about when to use gRPC as your transport.
gRPC APIs are useful instead of (or as a complement to) JSON/REST-based API.
Pekko gRPC
Pekko gRPC provides support for building streaming gRPC servers and clients on top of Pekko Streams and Pekko HTTP.
It features:
- A generator, that starts from a protobuf service definitions, for:
- Model classes
- The service API as a Scala traitJava interface using Pekko Stream
Sources - On the server side, code to create a Pekko HTTP route based on your implementation of the service
- On the client side side, a client for the service
- gRPC Runtime implementation that uses
- Pekko HTTP/2 support for the server side and
grpc-netty-shadedfor the client side.
- Support for sbt, gradle, Maven, and the Play Framework.
Project Information
| Project Info: Apache Pekko gRPC | |
|---|---|
| Artifact | org.apache.pekko
pekko-grpc-runtime
1.2.0
|
| JDK versions | OpenJDK 8 OpenJDK 11 OpenJDK 17 OpenJDK 21 |
| Scala versions | 2.12.20, 2.13.16, 3.3.6 |
| JPMS module name | pekko.grpc.runtime |
| License | |
| Home page | https://pekko.apache.org/ |
| API documentation | |
| Forums | |
| Release notes | GitHub releases |
| Issues | GitHub issues |
| Sources | https://github.com/apache/pekko-grpc |
Project Status
Pekko gRPC is still under development.
Both client- and server-side APIs are based on Pekko Streams.
The client side is currently implemented on top of io.grpc:grpc-netty-shaded.
Later versions may replace this by io.grpc:grpc-core and Pekko HTTP, when Pekko HTTP offers HTTP/2 client support.
1.2.0