aiogrpc

raw JSON →
1.8 verified Fri May 01 auth: no python maintenance

aiogrpc provides an asyncio wrapper for gRPC (grpcio), enabling asynchronous gRPC client and server calls on Python >=3.6. The latest version is 1.8. The project appears to be in maintenance mode with no recent releases since 2020.

pip install aiogrpc
error RuntimeError: There is no current event loop in thread 'MainThread'.
cause Importing aiogrpc before an event loop is set (e.g., at module level).
fix
Import aiogrpc inside an async function or after calling asyncio.set_event_loop(asyncio.new_event_loop()).
error AttributeError: module 'grpc' has no attribute 'alpha'
cause Confusion between aiogrpc and grpc.alpha (deprecated) or trying to use grpc.insecure_channel as async.
fix
Use from aiogrpc import insecure_channel.
breaking aiogrpc requires an event loop set before importing. Importing aiogrpc without a running loop raises RuntimeError.
fix Always import aiogrpc inside an async function or after asyncio.run() is called, or set a loop with asyncio.set_event_loop().
gotcha The library wraps grpc.aio only partially; streaming calls may behave differently. For example, async generators are not fully supported; use the library's own async iterators.
fix Prefer using grpc.aio (official async support in grpcio >= 1.32) unless you specifically need the older aiogrpc wrapper.
deprecated The library has not been updated since 2020 and conflicts with newer grpcio versions (1.40+).
fix Migrate to grpc.aio (official async gRPC). See https://grpc.io/docs/languages/python/quickstart/

Basic usage: create an insecure async channel and close it.

import asyncio
from aiogrpc import insecure_channel

async def main():
    channel = insecure_channel('localhost:50051')
    # Use channel with generated stubs, e.g., stub = GreeterStub(channel)
    await channel.close()

asyncio.run(main())