# grpc/grpc-java

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/grpc-grpc-java).**

12,032 stars · 3,990 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/grpc/grpc-java
- Homepage: https://grpc.io/docs/languages/java/
- awesome-repositories: https://awesome-repositories.com/repository/grpc-grpc-java.md

## Topics

`grpc` `java` `microservices` `proto` `rpc`

## Description

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-response lifecycle, and includes dynamic service discovery to locate backend instances in changing network environments.

The library provides tools for secure service networking, integrating transport-level security to encrypt and authenticate data transfers between endpoints. It also automates the creation of strongly-typed client and server stubs from service definitions to ensure consistent data structures across distributed architectures.

## Tags

### Software Engineering & Architecture

- [Java Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/application-frameworks/general-purpose-frameworks/java-frameworks.md) — A high-performance Java library for building distributed systems using protocol buffers.
- [Distributed Service Architectures](https://awesome-repositories.com/f/software-engineering-architecture/distributed-service-architectures.md) — Simplifies the integration of complex, multi-language backend architectures through robust service stubs.
- [Request Interceptors](https://awesome-repositories.com/f/software-engineering-architecture/request-interceptors.md) — Supports pluggable interceptors for injecting custom logic into the request-response lifecycle.

### Networking & Communication

- [Remote Procedure Calls](https://awesome-repositories.com/f/networking-communication/remote-procedure-calls.md) — Enables seamless interaction between distributed applications through remote procedure calls. ([source](https://grpc.io/docs/languages/java/))
- [Microservices Communications](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/application-interface-standards/microservices-communications.md) — Facilitates high-performance inter-service communication using a language-agnostic protocol.
- [Service Discovery](https://awesome-repositories.com/f/networking-communication/service-discovery.md) — Provides dynamic service discovery mechanisms to locate backend instances in changing network environments.
- [Asynchronous Network Frameworks](https://awesome-repositories.com/f/networking-communication/asynchronous-network-frameworks.md) — Utilizes a high-performance asynchronous network framework to manage massive concurrent connections.
- [High-Performance Networking](https://awesome-repositories.com/f/networking-communication/high-performance-networking.md) — Provides low-latency communication interfaces optimized for efficient serialization and streaming.
- [HTTP/2 Protocol Implementations](https://awesome-repositories.com/f/networking-communication/http-2-protocol-implementations.md) — Implements HTTP/2 multiplexed binary protocols for efficient data exchange between services.

### Data & Databases

- [Protocol Buffers](https://awesome-repositories.com/f/data-databases/data-serialization-formats/binary-serialization-protocols/protocol-buffers.md) — Uses protocol buffers to define service interfaces and generate strongly-typed client and server stubs.

### Security & Cryptography

- [Service Communication Security](https://awesome-repositories.com/f/security-cryptography/service-communication-security.md) — Ensures private and verified data exchanges between services using transport-level security. ([source](https://grpc.io/docs/languages/java/))
- [TLS Transfer Security](https://awesome-repositories.com/f/security-cryptography/tls-transfer-security.md) — Integrates transport-level security to provide encrypted communication and mutual authentication between endpoints.
- [Transport Layer Security](https://awesome-repositories.com/f/security-cryptography/transport-layer-security.md) — Provides secure networking components to encrypt and authenticate data exchanges between services.

### Part of an Awesome List

- [Networking](https://awesome-repositories.com/f/awesome-lists/devtools/networking.md) — RPC framework based on protobuf and HTTP/2.
