Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. JVM
  3. reactive-grpc

reactive-grpc

BSD-3-ClauseJavav1.2.4

A suite of libraries for using gRPC with Reactive Streams programming models like RxJava and Spring Reactor.

GitHubGitHub
843 stars121 forks0 contributors

What is reactive-grpc?

Reactive gRPC is a suite of libraries that provides reactive programming bindings for gRPC, enabling developers to use Reactive Streams libraries like RxJava and Spring Reactor with gRPC services. It solves the problem of integrating gRPC's HTTP/2-based communication with reactive programming models by offering generated stubs that support back-pressure and streaming operations.

Target Audience

Java developers building microservices or distributed systems with gRPC who want to adopt reactive programming patterns using RxJava or Spring Reactor.

Value Proposition

Developers choose Reactive gRPC because it seamlessly integrates gRPC with popular reactive libraries, providing end-to-end back-pressure support and bidirectional streaming capabilities that align with Reactive Streams standards.

Overview

Reactive stubs for gRPC

Use Cases

Best For

  • Building reactive microservices with gRPC and RxJava
  • Implementing back-pressure in gRPC streaming APIs
  • Integrating gRPC with Spring Reactor projects
  • Developing Android apps with gRPC and reactive programming
  • Creating bidirectional streaming services with flow control
  • Migrating existing gRPC services to reactive programming models

Not Ideal For

  • Projects using Akka for reactive programming (Akka gRPC is recommended instead)
  • Simple gRPC services without reactive streams or back-pressure needs
  • Teams requiring actively maintained libraries with regular updates and support
  • Android apps relying on Spring Reactor (due to unofficial and limited Android support)

Pros & Cons

Pros

Reactive Bindings Generation

Generates gRPC stubs for RxJava 2, RxJava 3, and Spring Reactor via a protobuf compiler plugin, simplifying integration with reactive programming libraries.

End-to-End Back-Pressure

Integrates gRPC's HTTP/2 flow control with Reactive Streams, enabling consistent back-pressure across distributed systems for unary and streaming operations.

Bidirectional Streaming Support

Supports streaming in both directions, aligning with reactive programming patterns for complex data flows between client and server.

Error Propagation Handling

Manages exception propagation with gRPC status exceptions, ensuring errors are communicated between client and server, though with some quirks.

Cons

Paused Development Status

The project is effectively paused and seeking new maintainers, risking long-term stability, updates, and support for production systems.

Complex Flow Control Model

Back-pressure involves three interacting layers (HTTP/2, gRPC, Reactive Streams), making behavior unintuitive and less predictable, as admitted in the documentation.

Limited Android Compatibility

Spring Reactor bindings are not officially supported on Android, and support is conditional on SDK version 26+, limiting use in mobile development.

Frequently Asked Questions

Quick Stats

Stars843
Forks121
Contributors0
Open Issues19
Last commit10 months ago
CreatedSince 2017

Tags

#back-pressure#rxjava2#java#rxjava#protocol-buffers#grpc#microservices#streaming#reactor#reactive-streams

Built With

P
Protocol Buffers
g
gRPC
J
Java
H
HTTP/2

Included in

JVM2.2k
Auto-fetched 7 hours ago

Related Projects

okhttpokhttp

Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

Stars46,948
Forks9,269
Last commit1 day ago
gorgor

GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.

Stars19,293
Forks88
Last commit3 months ago
comcastcomcast

Simulating shitty network connections so you can build better systems.

Stars10,508
Forks380
Last commit1 year ago
AeronAeron

Efficient reliable UDP unicast, UDP multicast, and IPC message transport

Stars8,611
Forks1,034
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub