All Projects → akka → Akka Grpc

akka / Akka Grpc

Licence: apache-2.0
Akka gRPC

Programming Languages

java
68154 projects - #9 most used programming language
scala
5932 projects

Projects that are alternatives of or similar to Akka Grpc

Akka Http
The Streaming-first HTTP server/module of Akka
Stars: ✭ 1,163 (+222.16%)
Mutual labels:  hacktoberfest, reactive, akka, streaming, akka-http
Akka
Build highly concurrent, distributed, and resilient message-driven applications on the JVM
Stars: ✭ 11,938 (+3206.93%)
Mutual labels:  hacktoberfest, reactive, akka, streaming
Servicetalk
A networking framework that evolves with your application
Stars: ✭ 656 (+81.72%)
Mutual labels:  grpc, rpc, reactive, reactive-streams
Alpakka
Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka.
Stars: ✭ 1,154 (+219.67%)
Mutual labels:  hacktoberfest, reactive, reactive-streams, akka
akka-cookbook
提供清晰、实用的Akka应用指导
Stars: ✭ 30 (-91.69%)
Mutual labels:  reactive, akka, akka-http, reactive-streams
Alpakka Kafka
Alpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka.
Stars: ✭ 1,295 (+258.73%)
Mutual labels:  reactive, reactive-streams, akka
Squbs
Akka Streams & Akka HTTP for Large-Scale Production Deployments
Stars: ✭ 1,365 (+278.12%)
Mutual labels:  reactive, akka, akka-http
Scalecube Services
v2.0 - ScaleCube Services provides a low latency Reactive Microservices library for serverless service registry and discovery based on gossip protocol and without single point-of-failure or bottlenecks.
Stars: ✭ 23 (-93.63%)
Mutual labels:  rpc, reactive, reactive-streams
Lagom
Reactive Microservices for the JVM
Stars: ✭ 2,590 (+617.45%)
Mutual labels:  hacktoberfest, reactive, akka
Otoroshi
Lightweight api management on top of a modern http reverse proxy
Stars: ✭ 177 (-50.97%)
Mutual labels:  hacktoberfest, akka, akka-http
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+839.61%)
Mutual labels:  grpc, rpc, hacktoberfest
scala-web-development
Scala Web 开发 - 使用 Akka
Stars: ✭ 42 (-88.37%)
Mutual labels:  reactive, akka, akka-http
Clickhouse Scala Client
Clickhouse Scala Client with Reactive Streams support
Stars: ✭ 84 (-76.73%)
Mutual labels:  reactive, reactive-streams, akka
Magiconion
Unified Realtime/API framework for .NET platform and Unity.
Stars: ✭ 2,505 (+593.91%)
Mutual labels:  grpc, rpc, streaming
Cloudstate
Distributed State Management for Serverless
Stars: ✭ 709 (+96.4%)
Mutual labels:  grpc, reactive, akka
Gb28181.solution
Linux/Win/Docker/kubernetes/Chart/Kustomize/GB28181/SIP/RTP/SDP/WebRTC/作为上下级域/平台级联互联
Stars: ✭ 323 (-10.53%)
Mutual labels:  grpc, rpc, streaming
Grpc Go
The Go language implementation of gRPC. HTTP/2 based RPC
Stars: ✭ 15,042 (+4066.76%)
Mutual labels:  grpc, rpc, hacktoberfest
Mu Haskell
Mu (μ) is a purely functional framework for building micro services.
Stars: ✭ 215 (-40.44%)
Mutual labels:  grpc, rpc, hacktoberfest
typebus
Framework for building distributed microserviceies in scala with akka-streams and kafka
Stars: ✭ 14 (-96.12%)
Mutual labels:  akka, akka-http
openmgmt
Documentation and examples for using open network management tools such as OpenConfig
Stars: ✭ 23 (-93.63%)
Mutual labels:  streaming, grpc

akka-grpc

Support for building streaming gRPC servers and clients on top of Akka Streams.

This library is meant to be used as a building block in projects using the Akka toolkit.

Documentation

Project Status

This library is ready to be used in production, but API's and build system plugins are still expected to be improved and may change.

The API on both sides (Client and Server) is a simple Akka Streams-based one.

The client side is currently implemented on top of io.grpc:grpc-netty-shaded, we plan to replace this by just io.grpc:grpc-core and Akka HTTP.

As for performance, we are currently relying on the JVM TLS implementation, which is sufficient for many use cases, but is planned to be replaced with conscrypt or netty-tcnative.

General overview

gRPC is a schema-first RPC framework, where your protocol is declared in a protobuf definition, and requests and responses will be streamed over an HTTP/2 connection.

Based on a protobuf service definition, akka-grpc can generate:

  • Model classes (using plain protoc for Java or scalapb for Scala)
  • The API (as an interface for Java or a trait for Scala), expressed in Akka Streams Sources
  • On the server side, code to create an Akka HTTP route based on your implementation of the API
  • On the client side, a client for the API.

Project structure

The project is split up in a number of subprojects:

  • codegen: code generation shared among plugins
  • runtime: run-time utilities used by the generated code
  • sbt-plugin: the sbt plugin
  • scalapb-protoc-plugin: the scalapb Scala model code generation packaged as a protoc plugin, to be used from gradle
  • interop-tests

Additionally, 'plugin-tester-java' and 'plugin-tester-scala' contain an example project in Java and Scala respectively, with both sbt and Gradle configurations.

Compatibility & support

If used with JDK 8 prior to version 1.8.0_251 you must add an ALPN agent.

Support for Akka gRPC is available via the Lightbend Subscription

License

Akka gRPC is Open Source and available under the Apache 2 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].