OSS TanbouSign in with GitHub

build asyncio HTTP clients, servers, and WebSockets with one Python framework

OSS scale score 298.1OSS health 100
About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
16,569
Primary language
Python
License
Apache-2.0 AND MIT
Repository last updated
Oct 5, 2026
On this page

Overview

aiohttp is an HTTP client/server framework for Python asyncio. It provides asynchronous ClientSession APIs, a web server with middleware and routing, and WebSocket support on both client and server sides.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Use ClientSession for asynchronous HTTP requests and connection reuse

aiohttp.ClientSession manages GET, POST, response bodies, and headers asynchronously and reuses connections across requests, integrating outbound HTTP I/O with the asyncio event loop.

Sources: [2]

Build HTTP servers with routing, middleware, and WebSockets

aiohttp.web.Application and route handlers provide an HTTP server model with middleware and pluggable routing. WebSockets are supported on both client and server sides.

Sources: [2]

Best fit

Fits backends that want HTTP client and lightweight async server behavior in one asyncio stack

It works well for high-concurrency outbound API calls, WebSocket connections, and lightweight service endpoints that should share the same asyncio ecosystem.

Sources: [2]

Before adoption

aiohttp 3.14.4 requires Python 3.10+; review request limits and parser changes

aiohttp 3.14.4 requires Python 3.10 or newer and its package licensing includes Apache-2.0 plus the vendored llhttp MIT license. The release adds form-field limits and parser safety fixes, so upload, form, and parser-sensitive paths deserve regression testing.

Sources: [3][4]

Official sources

  1. [1]aio-libs/aiohttp — GitHub repository(2026-10-06)
  2. [2]aiohttp 3.14.4 — README(2026-10-06)
  3. [3]aiohttp 3.14.4 — pyproject.toml(2026-10-06)
  4. [4]aiohttp 3.14.4 release(2026-10-06)
  5. [5]aiohttp license(2026-10-06)
Supplemental curator note

A key strength is covering both client and server use cases in asyncio. Reuse ClientSession for repeated requests, and make server-side body, form, and timeout limits explicit in production.

Try it in 3 steps

  1. 1

    Install aiohttp 3.14.4

    Pin the reviewed stable release. Python 3.10 or newer is required.

    python -m pip install "aiohttp==3.14.4"
  2. 2

    Create a minimal localhost web server

    Use a minimal version of the official server example and bind it only to localhost.

    cat > aiohttp_demo.py <<'PY' from aiohttp import web async def hello(request): return web.Response(text='hello aiohttp') app = web.Application() app.add_routes([web.get('/', hello)]) web.run_app(app, host='127.0.0.1', port=8080) PY
  3. 3

    Start the server and check the response

    Start the server and confirm that it returns hello aiohttp.

    python aiohttp_demo.py # In another terminal: curl -fsS http://127.0.0.1:8080/
Check the official README

Growth

Growth trends · Last 30 days

16,569 Stars

Trend data is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • aiohttp
  • async
  • asyncio
  • hacktoberfest
  • http
  • http-client
  • http-server
  • python
Stars
16,569
Forks
2,439
Watchers
215
Open issues
221
Contributors
416
Owner type
Organization
Primary language
Python
Repository last updated
Oct 5, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?