For a java library for building gRPC services, the strongest matches are grpc/grpc (This is the official core framework for gRPC, providing), grpc/grpc-java (This is the official Java implementation of gRPC, providing) and line/armeria (Armeria is a high-performance microservices framework that natively supports). quarkusio/quarkus and apache/dubbo round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best java grpc libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
gRPC is a language-agnostic remote procedure call framework designed for high-performance communication between distributed services. It utilizes a structured interface definition language to generate consistent client stubs and server skeletons, enabling applications to invoke methods on remote servers as if they were local objects. By leveraging the HTTP/2 transport layer, the framework supports efficient binary serialization and multiplexed data exchange across diverse programming environments. The framework distinguishes itself through its support for flexible communication patterns, incl
This is the official core framework for gRPC, providing the essential foundation for implementing services and clients in Java with full support for Protocol Buffers, streaming, interceptors, and load balancing.
gRPC Java is a library for building distributed systems that enables client and server applications to interact through remote procedure calls. It uses protocol buffers to define service interfaces and exchange structured data, providing a framework for connecting microservices across different environments. The framework utilizes an asynchronous networking foundation to manage concurrent connections and relies on a multiplexed binary protocol to facilitate efficient data exchange. It supports pluggable transport interceptors, allowing for the injection of custom logic into the request-respon
This is the official Java implementation of gRPC, providing the core framework for defining services with Protocol Buffers, handling asynchronous streaming, and implementing interceptors for robust microservices communication.
Armeria is a Netty-based microservice framework used for building high-performance asynchronous services. It functions as a multi-protocol RPC server capable of exposing gRPC, Thrift, and REST services on a single unified port. The project is distinguished by its ability to run diverse communication protocols simultaneously and its integrated RPC debugging web console, which allows for the discovery and invocation of remote procedure calls via JSON. It also includes a gRPC to JSON transcoder to enable web client compatibility with Protobuf services. The framework provides a comprehensive sui
Armeria is a high-performance microservices framework that natively supports gRPC alongside other protocols, providing the necessary infrastructure for service definition, interceptors, load balancing, and asynchronous communication.
Quarkus is a Kubernetes-native Java framework designed for building high-performance, memory-efficient applications. It utilizes ahead-of-time native compilation to transform Java code into standalone, optimized binaries that eliminate the need for a virtual machine, enabling rapid startup and reduced memory consumption. By performing code augmentation during the build phase, it shifts heavy processing tasks away from runtime, ensuring that applications are optimized for cloud-native environments. The framework distinguishes itself through a unified approach to reactive and imperative program
Quarkus is a comprehensive Java framework that provides first-class support for gRPC through its dedicated extension, offering the required service definition, streaming, and interceptor capabilities within a cloud-native ecosystem.
Dubbo is a Java RPC framework and microservices governance platform designed for high-performance remote procedure calls in distributed architectures. It provides the foundational components necessary to connect distributed services across a network, including a binary data serialization library and a distributed service registry. The platform distinguishes itself through a comprehensive governance suite that manages service discovery, load balancing, and traffic routing. It enables precise control over network traffic via conditional routing and a pluggable extension mechanism based on a ser
Dubbo is a comprehensive Java RPC framework that natively supports gRPC as a transport protocol and provides the requested features like service discovery, load balancing, and streaming, though it is a broader microservices platform rather than a dedicated gRPC-only library.
grpc-go is a Go language implementation of the gRPC framework, providing a remote procedure call library for high-performance service communication. It uses the HTTP/2 protocol to execute functions on remote servers as if they were local methods and utilizes protobuf service bindings to generate type-safe client and server code. The project features a bidirectional streaming transport that supports asynchronous, full-duplex message streams between clients and servers. This networking layer allows for various communication patterns, including client-to-server and server-to-client streaming, to
This repository provides the gRPC implementation for the Go programming language, but it does not support the Java ecosystem requested by the visitor.
protobuf.js is a JavaScript and TypeScript library for encoding and decoding structured data using the Protocol Buffers binary format. It functions as a dynamic parser that can load and process schemas at runtime, a JSON transcoder for converting messages to human-readable formats, and a framework for building transport-agnostic remote procedure call clients. The project distinguishes itself by offering both dynamic message handling and a static code generator that produces TypeScript declarations and JavaScript modules to reduce runtime overhead. It also provides a reflection API for definin
This is a JavaScript and TypeScript library for Protocol Buffers and RPC serialization, which does not provide the Java-based framework or runtime environment required for implementing gRPC services in Java.
Ribbon is a client-side load balancer and RPC communication library designed for inter-process communication. It functions as a fault-tolerant network proxy that distributes outgoing network requests across a pool of available server instances to prevent node overload. The project integrates as a service discovery client, maintaining synchronized lists of available server instances by connecting with cloud environment discovery tools. This allows it to manage request retries and failover behavior when remote servers become unresponsive. The library supports a protocol-agnostic transport laye
Ribbon is a client-side load balancing and service discovery library for inter-process communication, but it lacks the core gRPC-specific implementation, service definition generation, and Protocol Buffers integration required to function as a gRPC framework.
Protocol Buffers is a binary serialization framework used to encode structured information into compact payloads to reduce network bandwidth and storage. It functions as a cross-language data interchange standard that enables different platforms and languages to exchange structured data using a shared schema. The project includes an interface definition language compiler that transforms schema definitions into type-safe source code for multiple target programming languages. This mechanism decouples data structures from specific language memory layouts and ensures consistent data handling acro
This repository provides the underlying serialization format and schema compiler used by gRPC, but it is a data interchange library rather than a framework for implementing gRPC services and clients.
Gatus is a multi-protocol health checker and automated service alerting tool. It provides a monitoring dashboard for tracking the uptime and health of HTTP, TCP, DNS, and gRPC endpoints, and serves as a Prometheus metrics exporter to track response times and success rates. The project distinguishes itself with a developer-oriented approach to status pages, securing administrative access and dashboards via OpenID Connect and Basic Authentication. It supports complex network environments through SSH tunneling to monitor internal services via bastion hosts and allows remote agents to push health
This is a service monitoring and health-checking tool that can probe gRPC endpoints, but it is not a framework for building or implementing gRPC services and clients.
Envoy is a high-performance, cloud-native service proxy designed for service-to-service communication in distributed architectures. It functions as a service mesh data plane, providing a centralized mechanism for managing, securing, and observing network traffic between microservices. The project is distinguished by its ability to perform dynamic traffic management and configuration updates in real-time without requiring service restarts or downtime. It utilizes a non-blocking, event-driven architecture to handle high-concurrency connections and supports hot-restart process management, which
Envoy is a high-performance service proxy and infrastructure component used to route and manage gRPC traffic, but it is not a Java framework for implementing gRPC services and clients.
brpc is a high-performance C++ RPC framework and network programming library designed for building distributed systems. It functions as a multi-protocol RPC server capable of hosting and detecting multiple communication protocols, including gRPC, Thrift, HTTP, Redis, and Memcached, on a single TCP port. The project distinguishes itself through high-throughput data transport and memory efficiency, utilizing RDMA-based transport to bypass the kernel TCP stack and zero-copy memory management to eliminate data duplication. It also implements the Raft algorithm for consensus-based state replicatio
This is a high-performance C++ RPC framework rather than a Java-based library, making it a different toolset for implementing gRPC services.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| grpc/grpc | 44.9K | C++ | Apache-2.0 | |
| grpc/grpc-java | 12K | Java | Apache-2.0 | |
| line/armeria | 5.1K | Java | Apache-2.0 | |
| quarkusio/quarkus | 15.5K | Java | apache-2.0 | |
| apache/dubbo | 41.5K | Java | Apache-2.0 | |
| grpc/grpc-go | 23K | Go | Apache-2.0 | |
| protobufjs/protobuf.js | 10.6K | JavaScript | NOASSERTION | |
| netflix/ribbon | 4.6K | Java | Apache-2.0 | |
| google/protobuf | 71.4K | C++ | NOASSERTION | |
| twinproduction/gatus | 11.3K | Go | Apache-2.0 |