back to home

aio-libs / aiohttp

Asynchronous HTTP client/server framework for asyncio and Python

16,393 stars
2,214 forks
273 issues
PythonCythonMakefile

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing aio-libs/aiohttp in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/aio-libs/aiohttp)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

================================== Async http client/server framework ================================== .. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/aiohttp-plain.svg :height: 64px :width: 64px :alt: aiohttp logo | .. image:: https://github.com/aio-libs/aiohttp/workflows/CI/badge.svg :target: https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI :alt: GitHub Actions status for master branch .. image:: https://codecov.io/gh/aio-libs/aiohttp/branch/master/graph/badge.svg :target: https://codecov.io/gh/aio-libs/aiohttp :alt: codecov.io status for master branch .. image:: https://badge.fury.io/py/aiohttp.svg :target: https://pypi.org/project/aiohttp :alt: Latest PyPI package version .. image:: https://img.shields.io/pypi/dm/aiohttp :target: https://pypistats.org/packages/aiohttp :alt: Downloads count .. image:: https://readthedocs.org/projects/aiohttp/badge/?version=latest :target: https://docs.aiohttp.org/ :alt: Latest Read The Docs .. image:: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json :target: https://codspeed.io/aio-libs/aiohttp :alt: Codspeed.io status for aiohttp Key Features ============ • Supports both client and server side of HTTP protocol. • Supports both client and server Web-Sockets out-of-the-box and avoids Callback Hell. • Provides Web-server with middleware and pluggable routing. Getting started =============== Client ------ To get something from the web: .. code-block:: python import aiohttp import asyncio async def main(): async with aiohttp.ClientSession() as session: async with session.get('http://python.org') as response: print("Status:", response.status) print("Content-type:", response.headers['content-type']) html = await response.text() print("Body:", html[:15], "...") asyncio.run(main()) This prints: .. code-block:: Status: 200 Content-type: text/html; charset=utf-8 Body: ... Coming from _ ? Read _. Server ------ An example using a simple server: .. code-block:: python # examples/server_simple.py from aiohttp import web async def handle(request): name = request.match_info.get('name', "Anonymous") text = "Hello, " + name return web.Response(text=text) async def wshandle(request): ws = web.WebSocketResponse() await ws.prepare(request) async for msg in ws: if msg.type == web.WSMsgType.text: await ws.send_str("Hello, {}".format(msg.data)) elif msg.type == web.WSMsgType.binary: await ws.send_bytes(msg.data) elif msg.type == web.WSMsgType.close: break return ws app = web.Application() app.add_routes([web.get('/', handle), web.get('/echo', wshandle), web.get('/{name}', handle)]) if __name__ == '__main__': web.run_app(app) Documentation ============= https://aiohttp.readthedocs.io/ Demos ===== https://github.com/aio-libs/aiohttp-demos External links ============== • _ • _ • _ Feel free to make a Pull Request for adding your link to these pages! Communication channels ====================== *aio-libs Discussions*: https://github.com/aio-libs/aiohttp/discussions *Matrix*: _ We support _. Please add *aiohttp* tag to your question there. Requirements ============ • multidict_ • yarl_ • frozenlist_ Optionally you may install the aiodns_ library (highly recommended for sake of speed). .. _aiodns: https://pypi.python.org/pypi/aiodns .. _multidict: https://pypi.python.org/pypi/multidict .. _frozenlist: https://pypi.org/project/frozenlist/ .. _yarl: https://pypi.python.org/pypi/yarl License ======= aiohttp is offered under the Apache 2 license. Keepsafe ======== The aiohttp community would like to thank Keepsafe (https://www.getkeepsafe.com) for its support in the early days of the project. Source code =========== The latest developer version is available in a GitHub repository: https://github.com/aio-libs/aiohttp Benchmarks ========== If you are interested in efficiency, the AsyncIO community maintains a list of benchmarks on the official wiki: https://github.com/python/asyncio/wiki/Benchmarks -------- .. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat :target: https://matrix.to/#/%23aio-libs:matrix.org :alt: Matrix Room — #aio-libs:matrix.org .. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat :target: https://matrix.to/#/%23aio-libs-space:matrix.org :alt: Matrix Space — #aio-libs-space:matrix.org .. image:: https://insights.linuxfoundation.org/api/badge/health-score?project=aiohttp :target: https://insights.linuxfoundation.org/project/aiohttp :alt: LFX Health Score