{"id":23209,"library":"aiogrpc","title":"aiogrpc","description":"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.","status":"maintenance","version":"1.8","language":"python","source_language":"en","source_url":"https://github.com/hubo1016/aiogrpc","tags":["grpc","async","asyncio","rpc"],"install":[{"cmd":"pip install aiogrpc","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core gRPC library that aiogrpc wraps","package":"grpcio","optional":false}],"imports":[{"note":"grpc.insecure_channel returns a sync channel, not async","wrong":"from grpc import insecure_channel","symbol":"insecure_channel","correct":"from aiogrpc import insecure_channel"},{"note":"","wrong":"","symbol":"channel_ready_future","correct":"from aiogrpc import channel_ready_future"}],"quickstart":{"code":"import asyncio\nfrom aiogrpc import insecure_channel\n\nasync def main():\n    channel = insecure_channel('localhost:50051')\n    # Use channel with generated stubs, e.g., stub = GreeterStub(channel)\n    await channel.close()\n\nasyncio.run(main())","lang":"python","description":"Basic usage: create an insecure async channel and close it."},"warnings":[{"fix":"Always import aiogrpc inside an async function or after asyncio.run() is called, or set a loop with asyncio.set_event_loop().","message":"aiogrpc requires an event loop set before importing. Importing aiogrpc without a running loop raises RuntimeError.","severity":"breaking","affected_versions":"all"},{"fix":"Prefer using grpc.aio (official async support in grpcio >= 1.32) unless you specifically need the older aiogrpc wrapper.","message":"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.","severity":"gotcha","affected_versions":"all"},{"fix":"Migrate to grpc.aio (official async gRPC). See https://grpc.io/docs/languages/python/quickstart/","message":"The library has not been updated since 2020 and conflicts with newer grpcio versions (1.40+).","severity":"deprecated","affected_versions":">=1.8"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Import aiogrpc inside an async function or after calling asyncio.set_event_loop(asyncio.new_event_loop()).","cause":"Importing aiogrpc before an event loop is set (e.g., at module level).","error":"RuntimeError: There is no current event loop in thread 'MainThread'."},{"fix":"Use from aiogrpc import insecure_channel.","cause":"Confusion between aiogrpc and grpc.alpha (deprecated) or trying to use grpc.insecure_channel as async.","error":"AttributeError: module 'grpc' has no attribute 'alpha'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}