awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
grpc avatar

grpc/grpc

0
View on GitHub↗
44,891 stars·11,162 forks·C++·Apache-2.0·19 viewsgrpc.io↗

Grpc

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, including unary calls and bidirectional streaming, which allow for real-time data exchange and complex interaction flows. It provides a robust set of tools for managing distributed connectivity, such as client-side load balancing, pluggable name resolution, and interceptor-based middleware for injecting cross-cutting concerns like authentication and observability. These features ensure that services can maintain stable, secure, and performant connections even in evolving infrastructure environments.

Beyond core connectivity, gRPC includes comprehensive mechanisms for lifecycle management and resilience. This includes deadline-based request propagation, automatic retry policies, and request hedging to handle transient network failures. The framework also provides standardized error reporting, structured metadata exchange, and built-in health checking to facilitate reliable operation and diagnostics across service boundaries.

The project provides extensive documentation and tooling to support cross-platform integration and performance benchmarking.

Features

  • Remote Procedure Call Frameworks - Implements a high-performance framework for language-agnostic communication between microservices.
  • Remote Procedure Calls - Implements service methods on the server and invokes them via local stub objects to facilitate distributed communication.
  • Interface Definition Code Generation - Automatically generates language-specific client stubs and server skeletons from interface definition files.
  • Interface Definition Languages - Uses language-agnostic specifications to define service contracts and generate client code.
  • HTTP/2 Transport Layers - Utilizes HTTP/2 binary framing and multiplexing for efficient communication and connection reuse.
  • Bidirectional Streaming Protocols - Enables real-time, interactive communication through independent read-write streams between client and server.
  • High-Performance Transport Layers - Utilizes binary serialization and multiplexed streams for efficient data exchange.
  • Inter-Service Authentication - Enforces encrypted transport and identity verification across distributed services.
  • Transport Layer Security - Encrypts communication channels using SSL or TLS to protect data and authenticate endpoints.
  • Request Interceptors - Implements cross-cutting logic for remote calls by intercepting requests and responses for tasks like logging and authentication.
  • Unary RPC Execution - Performs standard remote calls where a client sends a single request and receives a single response.
  • Load Balancing Policies - Distributes remote calls across multiple backend servers using client-side policies like round-robin or pick-first.
  • Interoperability - Allows services written in different languages to exchange structured data seamlessly.
  • Deadline Propagation - Automatically propagates timeout constraints across service boundaries to ensure system responsiveness.
  • Resilient Networking Patterns - Implements robust communication patterns like retries and load balancing to maintain stability.
  • DevOps & Infrastructure - C++ based gRPC framework
  • Web Servers - HTTP/2-based RPC framework with Python bindings.
  • Application Frameworks - High-performance RPC framework for distributed services.
  • Core Libraries - Core C-based implementation for multiple languages.
  • Inter-process Communication - General-purpose high-performance RPC framework.
  • Serialization and Communication - High-performance framework for remote procedure calls.
  • Web Servers - Listed in the “Web Servers” section of the Awesome Python awesome list.
  • Load Balancing Policies - Distributes remote procedure calls across multiple backend instances to improve availability and resource utilization.
  • Data Compression - Applies compression settings at the channel, call, or message level to reduce bandwidth usage.
  • Distributed Service Connectivity - Provides tools for managing network connections and load balancing in microservice architectures.
  • Service Discovery Resolvers - Implements custom name resolution logic to enable dynamic service discovery and reactive updates.
  • Streaming Data Protocols - Supports real-time streaming of data between clients and servers for interactive features.
  • Credential Management - Attaches security metadata to network channels and individual remote calls using a unified interface.
  • Interceptor Middleware - Provides a pluggable pipeline for injecting cross-cutting concerns like logging and metrics into request lifecycles.
  • Server Health Checks - Implements a standard health check service on a server to report availability via status checks or streaming updates.
  • Graceful Shutdowns - Stops a server by rejecting new requests while allowing existing in-flight calls to complete within a timeout.
  • Client-Side Streaming - Streams sequences of messages from the client to the server for efficient data ingestion.
  • Retry Policies - Configures maximum attempts and backoff parameters to improve resilience against transient network failures.
  • Server-Side Streaming - Streams sequences of messages from the server to the client to handle large datasets efficiently.
  • OAuth Authentication - Integrates OAuth 2.0 tokens into applications for secure communication and server-side verification.
  • Deadline Management - Propagates maximum wait times to downstream services to ensure system responsiveness.
  • Metadata Propagation - Transmits key-value pairs to propagate authentication tokens and tracing identifiers between distributed services.
  • Server Reflection - Registers a reflection service to enable external tools to query and interpret exported API definitions at runtime.
  • Service Discovery & Observability - Enables dynamic discovery of API schemas and monitoring of system health.
  • Call Behavior Configuration - Defines execution parameters for remote calls including timeouts, retry policies, and wait-for-ready behavior.
  • Connection Channel Management - Manages persistent network connections and transport channels for client-server communication.
  • Service Discovery Resolvers - Integrates custom resolution logic to dynamically map service names to network addresses at runtime.
  • Connection Keepalives - Configures connection lifecycle parameters to maintain active network connections and manage resource usage.
  • Custom Load Balancers - Implements custom policies to manage backend connections and distribute requests across available servers.
  • Cloud Service Authentication - Authenticates with cloud services using default credentials and environment-based tokens.
  • Metadata Exchange - Transmits authentication tokens and tracing information via request metadata.
  • Service Configuration Management - Provides dynamic configuration distribution for managing connection behaviors in distributed services.
  • Client-Side Health Monitoring - Configures clients to automatically monitor server health status and route requests only to healthy services.
  • Performance Monitoring - Monitors system performance by collecting standard metrics for remote calls and load balancing policies.

Star history

Star history chart for grpc/grpcStar history chart for grpc/grpc

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Grpc

Similar open-source projects, ranked by how many features they share with Grpc.
  • grpc/grpc-gogrpc avatar

    grpc/grpc-go

    22,962View on GitHub↗

    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

    Godogs-over-catsgiant-robotsgo
    View on GitHub↗22,962
  • apache/brpcapache avatar

    apache/brpc

    17,545View on GitHub↗

    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

    C++rpc
    View on GitHub↗17,545
  • grpc/grpc-nodegrpc avatar

    grpc/grpc-node

    4,833View on GitHub↗

    This project is a gRPC framework for Node.js used to implement high-performance remote procedure calls. It provides a client-server communication library that utilizes HTTP/2 for streaming, multiplexing, and binary framing, alongside a protocol buffers implementation for defining structured data and generating service stubs. The framework includes a toolchain to compile protocol buffer files into language-specific objects and supports the generation of static TypeScript type definitions to validate objects at runtime. The library covers distributed system networking and microservices communi

    TypeScript
    View on GitHub↗4,833
  • grpc/grpc-rustgrpc avatar

    grpc/grpc-rust

    12,338View on GitHub↗

    grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and servers. It provides an asynchronous communication stack and a protocol buffers implementation for encoding, decoding, and generating type-safe code from service definitions. The project enables the implementation of unary and bi-directional data streaming over the HTTP/2 protocol. It includes specialized support for gRPC-Web integration, allowing browser-based clients to communicate with services through protocol translation. The infrastructure covers a broad range of distr

    Rustasyncgrpcproto
    View on GitHub↗12,338
See all 30 alternatives to Grpc→

Frequently asked questions

What does grpc/grpc do?

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…

What are the main features of grpc/grpc?

The main features of grpc/grpc are: Remote Procedure Call Frameworks, Remote Procedure Calls, Interface Definition Code Generation, Interface Definition Languages, HTTP/2 Transport Layers, Bidirectional Streaming Protocols, High-Performance Transport Layers, Inter-Service Authentication.

What are some open-source alternatives to grpc/grpc?

Open-source alternatives to grpc/grpc include: grpc/grpc-go — grpc-go is a Go language implementation of the gRPC framework, providing a remote procedure call library for… apache/brpc — brpc is a high-performance C++ RPC framework and network programming library designed for building distributed… grpc/grpc-node — This project is a gRPC framework for Node.js used to implement high-performance remote procedure calls. It provides a… grpc/grpc-rust — grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and… neuecc/magiconion — MagicOnion is a remote procedure call framework for the .NET platform and Unity. It functions as a binary API protocol… zaphoyd/websocketpp — This is a header-only C++ library and asynchronous network framework used to implement WebSocket clients and servers.…