skillfed

grpclib

Pure-Python gRPC implementation for asyncio

grpclib Permissive license BSD-3-Clause AGING 985 v0.4.9 released

Install

grpclib on PyPI

pip

pip install grpclib

uv

uv add grpclib

poetry

poetry add grpclib

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 2 — h2, multidict
Maintenance aging — 242 days since the last release
Last repo commit
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: grpclib-0.4.9-py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Internet :: WWW/HTTP :: HTTP ServersTopic :: Software Development :: Libraries :: Python Modules

About grpclib

from the package's own PyPI description — quoted content, verbatim

Pure-Python gRPC implementation for asyncio

.. image:: https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/7e1631d13476f1e870af0d5605b643fc14471a6d/banner-direct-single.svg :target: https://savelife.in.ua/en/

|project| |documentation| |version| |tag| |downloads| |license|

This project is based on hyper-h2_ and requires Python >= 3.10.

.. contents:: :local:

Example ~~~~~~~

See examples_ directory in the project's repository for all available examples.

Client

.. code-block:: python3

import asyncio

from grpclib.client import Channel

# generated by protoc from .helloworld_pb2 import HelloRequest, HelloReply from .helloworld_grpc import GreeterStub

async def main(): async with Channel('127.0.0.1', 50051) as channel: greeter = GreeterStub(channel)

      reply = await greeter.SayHello(HelloRequest(name='Dr. Strange'))
      print(reply.message)

if name == 'main': asyncio.run(main())

Server

.. code-block:: python3

import asyncio

from grpclib.utils import graceful_exit from grpclib.server import Server

# generated by...

Read as markdown · JSON record · Source repository · Homepage

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

Pure-Python gRPC client and server implementation for asyncio applications, enabling asynchronous remote procedure calls without compiled dependencies.

Low friction installation with just two runtime dependencies (h2, multidict). Repository shows recent activity (last commit 2025-12-14) and 985 GitHub stars, though the project is aging with 242 days since the last release.

BSD-3-Clause is permissive and imposes minimal restrictions; you may use, modify, and distribute grpclib freely provided you retain the license notice and disclaimer.

Usage

pip install grpclib

import asyncio
from grpclib.client import Channel

async def main():
    async with Channel('127.0.0.1', 50051) as channel:
        # Use generated stub from protoc
        pass

asyncio.run(main())

Requires Python >= 3.10. Code generation requires protoc compiler (via protobuf or grpcio-tools package, not runtime dependencies).

Verdict: Stable, permissively licensed pure-Python gRPC implementation suitable for asyncio projects. Low install friction and no known vulnerabilities, but maintenance is aging—last release was 242 days ago. Best for teams already committed to asyncio and protobuf workflows.

Needs verification

  • Performance characteristics compared to grpcio in production workloads
  • Completeness of gRPC feature coverage relative to the official implementation
  • Community adoption rate and ecosystem maturity beyond the 985 GitHub stars
grpc asyncio pythonasync rpc frameworkpure python grpcasyncio rpc server clientprotobuf async messaginghttp/2 async communicationgrpc without grpcio

Similar packages