For a library for building Rust gRPC services, the first results are grpc/grpc-rust (This is a native Rust gRPC framework that provides the core asynchronous communication, Protocol Buffers support, and HTTP/2 capabilities required to build high-performance services and clients), hyperium/tonic (Tonic is a high-performance, asynchronous gRPC framework for Rust that natively supports HTTP/2 and Protocol Buffers, making it the standard choice for building robust gRPC services and clients) and stepancheg/grpc-rust (This library provides a native Rust implementation of gRPC that supports Protocol Buffers and asynchronous I/O via tokio, making it a direct tool for building gRPC services and clients). tikv/grpc-rs and grpc/grpc round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “best rust grpc libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
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
This is a native Rust gRPC framework that provides the core asynchronous communication, Protocol Buffers support, and HTTP/2 capabilities required to build high-performance services and clients.
Tonic is a high-performance, asynchronous gRPC framework for Rust that natively supports HTTP/2 and Protocol Buffers, making it the standard choice for building robust gRPC services and clients.
Rust implementation of gRPC
This library provides a native Rust implementation of gRPC that supports Protocol Buffers and asynchronous I/O via tokio, making it a direct tool for building gRPC services and clients.
This library provides a framework for implementing gRPC clients and services in Rust, enabling reliable communication between distributed system components. It facilitates the definition and hosting of asynchronous unary and streaming network services, utilizing protocol buffers to ensure consistent, strongly-typed data exchange. The project distinguishes itself by integrating with a high-performance C core via foreign function interfaces to handle low-level networking and protocol logic. It employs a task-based concurrency model to coordinate non-blocking operations and utilizes zero-copy me
This library provides a Rust interface for gRPC services and clients by wrapping the C-based gRPC core, offering the necessary asynchronous support and Protocol Buffers integration for building high-performance services.
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 core C++ implementation of the gRPC protocol, which serves as the underlying foundation for many language-specific wrappers but is not a native Rust framework for building gRPC services.
Hyper is a low-level networking library designed for building high-performance HTTP clients and servers. It provides a foundational toolkit for creating network services that leverage asynchronous execution and memory-safe data handling, supporting both HTTP/1 and HTTP/2 protocols. The library distinguishes itself through a protocol-agnostic architecture that separates transport logic from HTTP semantics. It utilizes a service-trait abstraction to decouple network logic from the underlying transport, enabling developers to inject custom middleware for request interception and response transfo
Hyper is a low-level HTTP library that provides the foundational transport layer for building network services, but it lacks the built-in gRPC-specific abstractions like Protocol Buffers support and service definition required for a full gRPC framework.
Eureka is a service registry and discovery server that serves as a coordination tool for microservices. It provides a distributed service registry where instances record their network locations and health status to enable dynamic communication without the use of hardcoded addresses. The system functions as a client-side load balancing framework, providing location data to consumers so they can distribute network traffic across available instances. It employs a heartbeat-based health monitor to track instance availability and automatically removes unresponsive nodes from the registry to manage
This is a Java-based service discovery and registry tool rather than a Rust-based gRPC framework, serving as a supporting infrastructure component rather than the implementation tool requested.
nghttp2 is a suite of low-level C libraries and tools designed for implementing the HTTP/2 protocol. It provides a memory-efficient implementation of the protocol's core logic, including framing, stream multiplexing, and flow control. The project includes a dedicated library for HPACK header compression and decompression to reduce network bandwidth. It also provides a toolset for analyzing network traffic and benchmarking server performance, including throughput and latency measurements. Its broader capabilities cover protocol implementation and traffic management, including ALPN connection
This is a low-level C library for implementing the HTTP/2 protocol rather than a gRPC framework, meaning it lacks the necessary Protocol Buffers integration and service-level abstractions required to build gRPC services.
Prost is a Protocol Buffers implementation for Rust that functions as a binary serialization framework and code generator. It translates schema definitions into idiomatic Rust structs and enums, providing the logic necessary to encode and decode structured data into the Protocol Buffers binary format. The project distinguishes itself through a no-std implementation, allowing it to operate in embedded or kernel environments that lack a standard library. It also serves as a schema introspector by emitting file descriptor sets, which enables the programmatic analysis of original schema definitio
This is a Protocol Buffers serialization and code generation library rather than a full gRPC framework, meaning it provides the data-handling foundation but lacks the networking, HTTP/2, and service-dispatching capabilities required to implement a complete gRPC service.
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
This is a Java-based microservices framework rather than a Rust library, making it a different toolset for implementing gRPC services.
Buf is a toolchain for managing the full lifecycle of Protocol Buffers schemas. It provides a set of tools for schema governance, including linting to enforce style guides, a breaking change detector to ensure backward compatibility, and a system for producing language-specific source code via local or remote plugins. The project distinguishes itself through a remote schema registry that centralizes the hosting, versioning, and distribution of Protocol Buffers modules. This registry allows for server-side enforcement of governance policies, such as blocking updates that introduce backward-inc
This is a toolchain for managing and governing Protocol Buffers schemas rather than a framework for implementing gRPC services or clients in Rust.
Consul is a distributed coordination service and service mesh tool used for service discovery, health monitoring, and cluster state management across dynamic networks. It provides a platform for locating network addresses of services and managing traffic across distributed infrastructure using DNS and HTTP interfaces. The project distinguishes itself through multi-datacenter network orchestration, enabling the federation of services across different regions using mesh gateways. It secures communication via a service mesh architecture that employs identity-based authorization and mutual TLS en
Consul is a service discovery and mesh platform for managing distributed infrastructure, but it is not a gRPC framework for building services or clients.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| grpc/grpc-rust | 12.3K | Rust | MIT | |
| hyperium/tonic | 0 | — | — | — |
| stepancheg/grpc-rust |
| 1.4K |
| Rust |
| MIT |
| tikv/grpc-rs | 1.9K | Rust | Apache-2.0 |
| grpc/grpc | 44.9K | C++ | Apache-2.0 |
| hyperium/hyper | 15.9K | Rust | mit |
| netflix/eureka | 12.7K | Java | Apache-2.0 |
| nghttp2/nghttp2 | 5K | C++ | NOASSERTION |
| tokio-rs/prost | 4.7K | Rust | Apache-2.0 |
| line/armeria | 5.1K | Java | Apache-2.0 |