A suite of libraries for using gRPC with Reactive Streams programming models like RxJava and Spring Reactor.
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.
Java developers building microservices or distributed systems with gRPC who want to adopt reactive programming patterns using RxJava or Spring Reactor.
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.
Reactive stubs for gRPC
Generates gRPC stubs for RxJava 2, RxJava 3, and Spring Reactor via a protobuf compiler plugin, simplifying integration with reactive programming libraries.
Integrates gRPC's HTTP/2 flow control with Reactive Streams, enabling consistent back-pressure across distributed systems for unary and streaming operations.
Supports streaming in both directions, aligning with reactive programming patterns for complex data flows between client and server.
Manages exception propagation with gRPC status exceptions, ensuring errors are communicated between client and server, though with some quirks.
The project is effectively paused and seeking new maintainers, risking long-term stability, updates, and support for production systems.
Back-pressure involves three interacting layers (HTTP/2, gRPC, Reactive Streams), making behavior unintuitive and less predictable, as admitted in the documentation.
Spring Reactor bindings are not officially supported on Android, and support is conditional on SDK version 26+, limiting use in mobile development.
Square’s meticulous HTTP client for the JVM, Android, and GraalVM.
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.
Simulating shitty network connections so you can build better systems.
Efficient reliable UDP unicast, UDP multicast, and IPC message transport
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.