connectrpc
Server and client runtime library for Connect RPC
What it is and what it does
Connect is a runtime library that lets you build RPC APIs by defining your schema once in Protocol Buffers and generating type-safe server and client code automatically. It runs on standard Python web frameworks (WSGI/ASGI) and works with curl and HTTP clients out of the box, while also speaking gRPC and gRPC-Web protocols. The library handles the transport and serialization; you write only your business logic.
It provides both synchronous and asynchronous client libraries, full streaming support (server, client, and bidirectional), built-in compression, and middleware hooks for logging and observability. The package depends on protobuf-py for message serialization and pyqwest for HTTP transport, and is actively maintained with support for modern Python versions.
Use it for:
- Build a type-safe microservice that speaks both HTTP/JSON and gRPC without writing serialization code.
- Generate matching client libraries for multiple languages from a single Protobuf schema.
- Add streaming RPC endpoints to an existing ASGI or WSGI application alongside other routes.
- Implement server and client interceptors for distributed tracing, authentication, or request logging.
- Migrate from gRPC while maintaining protocol compatibility and reusing existing Protobuf definitions.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Connect is a runtime library for building and consuming RPC APIs using Protocol Buffers, supporting both server (WSGI/ASGI) and client (sync/async) implementations with interoperability for gRPC and gRPC-Web.
Yes, if you are building new RPC APIs and want to avoid writing serialization and type definitions twice. The low install friction, active maintenance, permissive license, and support for current Python versions make it a solid choice. The Beta status means the API may evolve, so pin versions in production. Not necessary if you already have a working gRPC or REST setup and don't need the code-generation workflow.
Install
connectrpc on PyPI
pip
pip install connectrpcuv
uv add connectrpcpoetry
poetry add connectrpcInstalling connectrpc
Before you install
Low friction: pure Python wheel with only two runtime dependencies (protobuf-py and pyqwest). Active maintenance with a release within the last month and recent commits; project is in Beta status and supports current Python versions (3.10–3.14).
License in practice
Apache-2.0 permissive license allows use in commercial and open-source projects with minimal restrictions; attribution required but no copyleft obligations.
Quickstart
pip install connectrpc
from connectrpc.request import RequestContext
# Server: subclass generated service and serve with ASGI
# Client: instantiate generated client and call methods
# See docs for generated stub imports after running buf codegen
Requires Python 3.10 or later; code generation via buf and protoc plugins is a separate prerequisite step before runtime usage.
Verify before relying
- Performance characteristics compared to gRPC or other RPC frameworks under typical load.
- Production readiness: Beta status suggests API stability may still evolve.
- Ecosystem maturity: tooling and third-party middleware availability beyond what's documented.
- Specific compression algorithm performance (gzip, brotli, zstd) in real-world scenarios.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — protobuf-py, pyqwest |
| Maintenance | actively maintained — 30 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 606,081/month — #5,793 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: connectrpc-0.11.1-py3-none-any.whl
Keywords: connect, grpc, http, protobuf, rpc
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
connect-pythonProvides Python client and server libraries for…
permissive · top 5,000 on PyPI
grpclibgrpclib is a pure-Python asyncio-based…
permissive · top 1,000 on PyPI
protoc-gen-connect-pythonA protoc plugin that generates Python client…
permissive · top 15,000 on PyPI
twentyc.rpcA client library for consuming 20c's RESTful…
permissive · top 15,000 on PyPI
grpc-interceptorProvides simplified server and client…
permissive · top 1,000 on PyPI
authzedPython client library for SpiceDB that enables…
permissive · top 5,000 on PyPI
grpc-requestsA Python client library that uses gRPC…
permissive · top 15,000 on PyPI
grpciogRPC Python is an HTTP/2-based RPC framework…
permissive · top 100 on PyPI
conjure-python-clientA lightweight HTTP client library built on…
permissive · top 15,000 on PyPI
pyqwestA Python HTTP client wrapping the Rust reqwest…
permissive · top 5,000 on PyPI