For a python library for building gRPC services, the strongest matches are grpc/grpc (This is the official core implementation of gRPC, providing), improbable-eng/grpc-web (This project is a proxy and client-side library designed) and pydantic/pydantic (Pydantic is a data validation and serialization library that). grpc/grpc-web and protobufjs/protobuf.js round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best python 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 implementation of gRPC, providing the essential foundation for building services and clients in Python with full support for Protocol Buffers, streaming, and asynchronous communication.
grpc-web is a translation layer and proxy system that enables web browsers to communicate with gRPC backend services. It consists of a gRPC Web Proxy that converts browser-based HTTP and WebSocket requests into standard gRPC calls, along with a TypeScript gRPC client for making strongly-typed remote procedure calls from browsers or Node.js environments. The project features a bidirectional streaming bridge that utilizes WebSockets to bypass browser limitations, allowing for full-duplex communication and client-side data streaming. It includes a protocol buffer code generator that parses schem
This project is a proxy and client-side library designed to bridge web browsers to gRPC backends, rather than a framework for implementing gRPC services and clients in Python.
Pydantic is a data validation and serialization library that enforces schema constraints and performs type conversion on complex data structures. It utilizes standard Python type annotations to define data models, allowing developers to establish structured schemas that automatically enforce business rules and constraints without the need for custom domain-specific languages. The library distinguishes itself by transforming high-level model definitions into optimized code during initialization to minimize runtime overhead. It supports recursive validation for nested data structures and employ
Pydantic is a data validation and serialization library that can be used to define schemas for gRPC messages, but it is not a gRPC framework itself and lacks the networking, service definition, and streaming capabilities required to implement gRPC services.
gRPC-Web is a JavaScript client library that enables browser applications to call gRPC services through an HTTP proxy, using Protocol Buffers for serialization. It provides a browser-based gRPC client that supports unary, server-streaming, and bidirectional streaming RPCs, along with a code generator that produces JavaScript and TypeScript client stubs from .proto service definitions. The library includes an interceptor framework for attaching cross-cutting logic like authentication and retries to client calls, and supports setting Unix timestamp deadlines on RPCs for server-side timeout enfo
This is a JavaScript client library designed for browser-based applications to communicate with gRPC services, rather than a Python-based framework for implementing gRPC services and clients.
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 serialization and schema parsing, not a Python-based framework for implementing gRPC services.
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 repository provides a gRPC implementation for the Java ecosystem, but it does not support the Python language required for your implementation.
Nonebot2 is an asynchronous Python framework for building event-driven chatbots across multiple messaging platforms. It centers on a non-blocking event bus and a driver-based adapter system that unifies different messaging protocols into a single consistent interface. The framework utilizes a modular plugin architecture, allowing for the discovery and loading of third-party extensions to add new event handlers and system capabilities. It distinguishes itself with a type-annotation based dependency injection system that automatically resolves and provides required service objects to handlers a
This is an event-driven chatbot framework designed for messaging platforms rather than a general-purpose gRPC framework for implementing services and clients.
Hertz is a high-performance Go HTTP framework designed for building scalable microservices, RESTful APIs, and AI applications. It functions as a high-performance web server and a communication framework for microservices, utilizing non-blocking I/O and zero-copy memory management to handle high-concurrency traffic. The project distinguishes itself through a microservices communication toolkit that supports high-efficiency remote procedure calls via gRPC and Thrift protocols. It implements an asynchronous middleware engine based on an onion model, allowing for a pluggable request-response pipe
This is a high-performance Go-based web and microservices framework, not a Python-based library for implementing gRPC services.
ollama-python is a Python client for interacting with large language models. It provides an interface for sending prompts to receive text and chat completions, as well as a dedicated client for generating numerical vector embeddings from text. The project includes a wrapper that emulates the OpenAI API, allowing applications built for that standard to interact with local models. It also provides a non-blocking asynchronous client for executing concurrent requests. The library covers the full model lifecycle, including the ability to pull, create, list, and delete models within a local enviro
This is a client library for interacting with LLM APIs via REST, not a framework for building or consuming gRPC services.
Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a schema-driven toolchain that compiles declarative data definitions into type-safe source code, enabling consistent communication and strongly typed API contracts across services written in different programming languages. The project distinguishes itself through a highly efficient binary wire format that utilizes tag-based encoding and variable-width integer compression to minimize payload size and processing overhead. It supports robust evolutionary schema management, allowing d
This repository provides the serialization format and compiler used by gRPC, but it is a data-marshalling tool rather than a framework for implementing the services and clients themselves.
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 Python-based library, making it a tool for building distributed systems in a different language ecosystem.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| grpc/grpc | 44.9K | C++ | Apache-2.0 | |
| improbable-eng/grpc-web | 4.5K | TypeScript | Apache-2.0 | |
| pydantic/pydantic | 26.9K | Python | mit | |
| grpc/grpc-web | 9.2K | JavaScript | Apache-2.0 | |
| protobufjs/protobuf.js | 10.6K | JavaScript | NOASSERTION | |
| grpc/grpc-java | 12K | Java | Apache-2.0 | |
| nonebot/nonebot2 | 7.6K | Python | MIT | |
| cloudwego/hertz | 7.3K | Go | Apache-2.0 | |
| ollama/ollama-python | 9.4K | Python | mit | |
| protocolbuffers/protobuf | 71.4K | C++ | NOASSERTION |