{"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,"search_vec":"'1.8':24 '2020':38 '3.6':19 'aiogrpc':1,2 'appear':27 'async':40 'asynchron':11 'asyncio':5,41 'call':16 'client':13 'enabl':10 'grpc':8,12,39 'grpcio':9 'latest':21 'mainten':31 'mode':32 'project':26 'provid':3 'python':18 'recent':35 'releas':36 'rpc':42 'server':15 'sinc':37 'version':22 'wrapper':6","created_at":"2026-05-01T08:06:33.508337+00:00","updated_at":"2026-05-01T08:06:33.508337+00:00","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,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.8","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/hubo1016/aiogrpc","docs":null,"changelog":null,"pypi":"https://pypi.org/project/aiogrpc/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["http-networking","web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}