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
Source
s - 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
- Akka HTTP/2 support for the server side and
grpc-netty-shaded
for the client side.
- Support for sbt, gradle, and Maven.
Project Information
Project Info: Akka gRPC | |
---|---|
Artifact | com.lightbend.akka.grpc
akka-grpc-runtime
2.3.4
|
JDK versions | Adopt OpenJDK 8 Adopt OpenJDK 11 |
Scala versions | 2.12.18, 2.13.11, 3.2.2 |
JPMS module name | akka.grpc.runtime |
License | |
Readiness level | Supported, Lightbend Subscription provides support
Since 1.0.0, 2020-06-17
|
Home page | https://akka.io/ |
API documentation | |
Forums | |
Release notes | GitHub releases |
Issues | GitHub issues |
Sources | https://github.com/akka/akka-grpc |
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.