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.

Akka gRPC

Akka gRPC provides support for building streaming gRPC servers and clients on top of Akka Streams and Akka HTTP.

It features:

  • A generator, that starts from a protobuf service definitions, for:
    • Model classes
    • The service API as a Scala traitJava interface using Akka Stream Sources
    • On the server side, code to create an Akka 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, and Maven.

Project Information

Project Info: Akka gRPC
JDK versions
Eclipse Temurin JDK 11
Eclipse Temurin JDK 17
Eclipse Temurin JDK 21
Scala versions2.13.13, 3.3.3
JPMS module nameakka.grpc.runtime
Readiness level
Supported, support is available from Lightbend
Since 1.0.0, 2020-06-17
Home pagehttps://akka.io/
API documentation
Release notesGitHub releases
IssuesGitHub issues

Project Status

Akka gRPC is Supported for users with an Akka license.

Both client- and server-side APIs are based on Akka 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 Akka HTTP, when Akka HTTP offers HTTP/2 client support.

Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.