# Third-Party libraries

aiohttp is not just a library for making HTTP requests and creating web servers.

It is the foundation for libraries built on top of aiohttp.

This page is a list of these tools.

Please feel free to add your open source library if it’s not listed yet by making a pull request to https://github.com/aio-libs/aiohttp/

- Why would you want to include your awesome library in this list?

- Because the list increases your library visibility. People will have an easy way to find it.

## Officially supported

This list contains libraries which are supported by the aio-libs team and located on https://github.com/aio-libs

### aiohttp extensions

- aiohttp-session provides sessions for `aiohttp.web`.

- aiohttp-debugtoolbar is a library for debug toolbar support for `aiohttp.web`.

- aiohttp-security auth and permissions for `aiohttp.web`.

- aiohttp-devtools provides development tools for `aiohttp.web` applications.

- aiohttp-cors CORS support for aiohttp.

- aiohttp-sse Server-sent events support for aiohttp.

- pytest-aiohttp pytest plugin for aiohttp support.

- aiohttp-mako Mako template renderer for aiohttp.web.

- aiohttp-jinja2 Jinja2 template renderer for aiohttp.web.

- aiozipkin distributed tracing instrumentation for aiohttp client and server.

### Database drivers

- aiopg PostgreSQL async driver.

- aiomysql MySQL async driver.

- aioredis Redis async driver.

### Other tools

- aiodocker Python Docker API client based on asyncio and aiohttp.

- aiobotocore asyncio support for botocore library using aiohttp.

## Approved third-party libraries

These libraries are not part of `aio-libs` but they have proven to be very well written and highly recommended for usage.

- uvloop Ultra fast implementation of asyncio event loop on top of `libuv`.

  We highly recommend to use this instead of standard `asyncio`.

### Database drivers

- asyncpg Another PostgreSQL async driver. It’s much faster than `aiopg` but is not a drop-in replacement – the API is different. But, please take a look at it – the driver is incredibly fast.

## OpenAPI / Swagger extensions

Extensions bringing OpenAPI support to aiohttp web servers.

- aiohttp-apispec Build and document REST APIs with `aiohttp` and `apispec`.

- aiohttp_apiset Package to build routes using swagger specification.

- aiohttp-pydantic An `aiohttp.View` to validate the HTTP request’s body, query-string, and headers regarding function annotations and generate OpenAPI doc.

- aiohttp-swagger Swagger API Documentation builder for aiohttp server.

- aiohttp-swagger3 Library for Swagger documentation builder and validating aiohttp requests using swagger specification 3.0.

- aiohttp-swaggerify Library to automatically generate swagger2.0 definition for aiohttp endpoints.

- aio-openapi Asynchronous web middleware for aiohttp and serving Rest APIs with OpenAPI v3 specification and with optional PostgreSQL database bindings.

- rororo Implement `aiohttp.web` OpenAPI 3 server applications with schema first approach.

## Others

Here is a list of other known libraries that do not belong in the former categories.

We cannot vouch for the quality of these libraries, use them at your own risk.

Please add your library reference here first and after some time ask to raise the status.

- pytest-aiohttp-client Pytest fixture with simpler api, payload decoding and status code assertions.

- octomachinery A framework for developing GitHub Apps and GitHub Actions.

- aiomixcloud Mixcloud API wrapper for Python and Async IO.

- aiohttp-cache A cache system for aiohttp server.

- aiocache Caching for asyncio with multiple backends (framework agnostic)

- gain Web crawling framework based on asyncio for everyone.

- aiohttp-validate Simple library that helps you validate your API endpoints requests/responses with json schema.

- raven-aiohttp An aiohttp transport for raven-python (Sentry client).

- webargs A friendly library for parsing HTTP request arguments, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado, Pyramid, webapp2, Falcon, and aiohttp.

- aioauth-client OAuth client for aiohttp.

- aiohttpretty A simple asyncio compatible httpretty mock using aiohttp.

- aioresponses a helper for mock/fake web requests in python aiohttp package.

- aiohttp-transmute A transmute implementation for aiohttp.

- aiohttp-login Registration and authorization (including social) for aiohttp applications.

- aiohttp_utils Handy utilities for building aiohttp.web applications.

- aiohttpproxy Simple aiohttp HTTP proxy.

- aiohttp_traversal Traversal based router for aiohttp.web.

- aiohttp_autoreload Makes aiohttp server auto-reload on source code change.

- gidgethub An async GitHub API library for Python.

- aiohttp_jrpc aiohttp JSON-RPC service.

- fbemissary A bot framework for the Facebook Messenger platform, built on asyncio and aiohttp.

- aioslacker slacker wrapper for asyncio.

- aioreloader Port of tornado reloader to asyncio.

- aiohttp_babel Babel localization support for aiohttp.

- python-mocket a socket mock framework - for all kinds of socket animals, web-clients included.

- aioraft asyncio RAFT algorithm based on aiohttp.

- home-assistant Open-source home automation platform running on Python 3.

- discord.py Discord client library.

- aiogram A fully asynchronous library for Telegram Bot API written with asyncio and aiohttp.

- aiohttp-graphql GraphQL and GraphIQL interface for aiohttp.

- aiohttp-sentry An aiohttp middleware for reporting errors to Sentry.

- aiohttp-datadog An aiohttp middleware for reporting metrics to DataDog.

- async-v20 Asynchronous FOREX client for OANDA’s v20 API.

- aiohttp-jwt An aiohttp middleware for JWT(JSON Web Token) support.

- AWS Xray Python SDK Native tracing support for Aiohttp applications.

- GINO An asyncio ORM on top of SQLAlchemy core, delivered with an aiohttp extension.

- New Relic An aiohttp middleware for reporting your Python application performance metrics to New Relic.

- eider-py Python implementation of the Eider RPC protocol.

- asynapplicationinsights A client for Azure Application Insights implemented using `aiohttp` client, including a middleware for `aiohttp` servers to collect web apps telemetry.

- aiogmaps Asynchronous client for Google Maps API Web Services.

- DBGR Terminal based tool to test and debug HTTP APIs with `aiohttp`.

- aiohttp-middlewares Collection of useful middlewares for `aiohttp.web` applications.

- aiohttp-tus tus.io protocol implementation for `aiohttp.web` applications.

- aiohttp-sse-client A Server-Sent Event python client base on aiohttp.

- aiohttp-retry Wrapper for aiohttp client for retrying requests.

- aiohttp-socks SOCKS proxy connector for aiohttp.

- aiohttp-catcher An aiohttp middleware library for centralized error handling in aiohttp servers.

- rsocket Python implementation of RSocket protocol.