# keepsafe/aiohttp

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/keepsafe-aiohttp).**

16,447 stars · 2,329 forks · Python · Apache-2.0

## Links

- GitHub: https://github.com/KeepSafe/aiohttp
- Homepage: https://docs.aiohttp.org
- awesome-repositories: https://awesome-repositories.com/repository/keepsafe-aiohttp.md

## Description

aiohttp is an asynchronous networking framework for Python that provides both an HTTP client and an HTTP server. It utilizes the asyncio library to handle network requests and server-side routing through a non-blocking event loop.

The framework includes a dedicated toolkit for establishing persistent bidirectional communication channels, enabling the implementation of both WebSocket servers and clients for real-time data exchange.

It covers a broad range of asynchronous network programming capabilities, including the development of web servers with customizable routing and the ability to send non-blocking requests to external web services.

## Tags

### Web Development

- [HTTP Servers](https://awesome-repositories.com/f/web-development/http-servers.md) — Provides a high-performance asynchronous HTTP server with customizable routing and middleware. ([source](https://github.com/keepsafe/aiohttp#readme))
- [High-Performance HTTP Servers](https://awesome-repositories.com/f/web-development/high-performance-http-servers.md) — Offers a high-performance server framework optimized for handling many simultaneous network requests using asyncio.
- [Payload Streaming](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-request-handling/payload-streaming.md) — Processes large request and response bodies in chunks to maintain low memory usage during data transfers.
- [Real-Time Communication](https://awesome-repositories.com/f/web-development/real-time-communication.md) — Enables real-time, bidirectional data streaming between clients and servers using WebSockets.
- [Trie-Based Routing Engines](https://awesome-repositories.com/f/web-development/route-organization-patterns/trie-based-routing-engines.md) — Uses a prefix tree (trie) to efficiently map incoming URL paths to specific handler functions.

### Networking & Communication

- [Asynchronous HTTP Clients](https://awesome-repositories.com/f/networking-communication/asynchronous-http-clients.md) — Allows sending asynchronous, non-blocking network requests to external web services to retrieve or submit data. ([source](https://github.com/keepsafe/aiohttp#readme))
- [Asyncio HTTP Frameworks](https://awesome-repositories.com/f/networking-communication/asyncio-http-frameworks.md) — Combines an asynchronous HTTP client and server into a single networking framework based on the asyncio library.
- [WebSocket Implementations](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/websocket-implementations.md) — Implements persistent bidirectional communication channels for real-time data exchange via WebSockets. ([source](https://github.com/keepsafe/aiohttp#readme))
- [WebSocket Clients and Servers](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/websocket-implementations/websocket-clients-and-servers.md) — Ships a complete toolkit for establishing persistent bidirectional communication for real-time data exchange.
- [Network Programming Frameworks](https://awesome-repositories.com/f/networking-communication/network-programming-frameworks.md) — Provides a framework for building scalable network services utilizing non-blocking I/O and asyncio.
- [Non-Blocking Socket I/O](https://awesome-repositories.com/f/networking-communication/socket-networking/non-blocking-socket-i-o.md) — Utilizes asynchronous calls for socket read and write operations to maintain non-blocking network I/O.
- [Middleware-Based Request Pipelines](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/middleware-based-request-pipelines.md) — Provides a modular pipeline of wrappable functions to intercept and process incoming HTTP requests and responses.
- [WebSocket Managers](https://awesome-repositories.com/f/networking-communication/websocket-managers.md) — Manages the full WebSocket connection lifecycle, from the HTTP handshake to the closed state, using a state-machine approach.

### System Administration & Monitoring

- [Asynchronous Event Loops](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o/asynchronous-event-loops.md) — Implements a single-threaded event loop using asyncio to manage concurrent network connections without blocking.

### Part of an Awesome List

- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — HTTP client and server implementation for asynchronous applications.
