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.

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, Maven, and the Play Framework.

Project Information

Project Info: Akka gRPC
Artifact
com.lightbend.akka.grpc
akka-grpc-runtime
1.0.0
JDK versions
Adopt OpenJDK 8
Adopt OpenJDK 11
Scala versions2.12.11, 2.13.1
JPMS module nameakka.grpc.runtime
License
Readiness level
Since 1.0.0, 2020-06-17
Home pagehttps://akka.io/
API documentation
Forums
Release notesGitHub releases
IssuesGitHub issues
Sourceshttps://github.com/akka/akka-grpc

Project Status

Akka gRPC is Supported as part of a Lightbend Subscription.

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.