aiohttp is an asynchronous HTTP networking framework providing both client and server functionality. It uses an event-driven execution model to handle multiple network operations without requiring a separate thread for every connection.
The client component provides facilities for communicating with HTTP services, making it useful for applications that retrieve information from APIs, transfer data or maintain persistent network connections.
The server component allows developers to create web applications, APIs and WebSocket services. Applications can define routes and organise request handlers while using middleware and signals to coordinate processing.
Because aiohttp includes client and server facilities, it can be used by applications that both expose their own endpoints and communicate with external services.
This is free and open source software.
Key Features
- Asynchronous HTTP client with connection pooling and persistent sessions.
- Client support for request timeouts, redirects, cookies, authentication and proxy connections.
- Client and server WebSocket implementations.
- HTTP server with resource routing, dynamic paths and HTTP method handling.
- Middleware for authentication, logging, exception handling and other request-processing tasks.
- Streaming request and response bodies for handling large data transfers.
- Signals for application startup, cleanup and request processing.
- Nested applications and modular route organisation.
- Request parsing for JSON, query strings, forms and multipart uploads.
- Cookie handling and session support through companion components.
- Support for secure HTTPS connections and configurable SSL contexts.
- Client tracing for inspecting request and connection activity.
- Testing utilities for web applications, request handlers and HTTP clients.
Website: github.com/aio-libs/aiohttp
Support:
Developer: Andrew Svetlov, Nikolay Kim and contributors
License: Apache License 2.0
aiohttp is written in Python. Learn Python with our recommended free books and free tutorials.
Related Software
| Best Python Micro Frameworks | |
|---|---|
| Flask | Hugely popular microframework based on Werkzeug and Jinja2 |
| FastAPI | Web framework for building APIs |
| Starlette | Lightweight ASGI framework/toolkit |
| aiohttp | Asynchronous HTTP client/server for asyncio and Python |
| Sanic | Web server and web framework |
| Falcon | Build cloud APIs, smart proxies, and app backends |
| Quart | Web microframework based on Asyncio |
| Pyramid | Start small, finish big, stay finished framework |
| Bottle | Fast, simple and lightweight WSGI micro web framework |
| Chalice | Python Serverless Microframework for AWS |
| CherryPy | Mature, minimalist, Python object-oriented web framework |
| TurboGears | Hybrid framework acting as a Full Stack framework or Microframework |
| Quixote | Aimed at sites where complex programming is required |
| Klein | Micro-framework for developing production-ready web services with Python |
| circuits | Lightweight event driven application framework |
| Clastic | Functional web framework |
| Hug | Make developing Python driven APIs as simple as possible |
| MicroPie | Ultra-micro ASGI Python web framework |
| Litestar | Powerful, lightweight, and flexible ASGI framework |
| BlackSheep | Asynchronous Python web framework |
| Robyn | Python web framework designed for high performance |
| Microdot | Small web framework for Python and MicroPython |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.