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
  • Support for sbt, gradle, Maven, and the Play Framework.

Project Information

Project Info: Apache Pekko gRPC
Artifact
org.apache.pekko
pekko-grpc-runtime
1.1.0
JDK versions
OpenJDK 8
OpenJDK 11
OpenJDK 17
OpenJDK 21
Scala versions2.12.20, 2.13.15, 3.3.4
JPMS module namepekko.grpc.runtime
License
Home pagehttps://pekko.apache.org/
API documentation
Forums
Release notesGitHub releases
IssuesGitHub issues
Sourceshttps://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.