asincio impresionante
Una lista cuidadosamente seleccionada de increíbles marcos, bibliotecas, software y recursos de Python asyncio.
El módulo Python asyncio introducido en la biblioteca estándar con Python 3.4 proporciona infraestructura para escribir código concurrente de un solo subproceso usando corrutinas, multiplexación de acceso de E/S a través de sockets y otros recursos, ejecución de clientes y servidores de red, y otras primitivas relacionadas.
Asyncio no es realmente una tecnología nueva, sin embargo, parece estar muy de moda desde hace algunos años, especialmente en la comunidad de Python y con el lanzamiento de Python 3.4 en marzo de 2014. Por lo tanto, es bastante difícil mantenerse actualizado. con los paquetes más increíbles que existen. Encuentre algunos de esos increíbles paquetes aquí y, si le falta uno, contamos con usted para crear un problema o una solicitud de extracción con su sugerencia.
Contenido
- Marcos web
- Colas de mensajes
- Controladores de base de datos
- Redes
- GrafoQL
- Pruebas
- Bucles alternativos
- Varios
- Escritos
- Negociaciones
- Alternativas a asincio
Marcos web
Bibliotecas para construir aplicaciones web.
- FastAPI: un marco API Python 3.6+ de muy alto rendimiento basado en sugerencias de tipo. Desarrollado por Starlette y Pydantic.
- Django: un marco web Python establecido y de alto nivel con una enorme comunidad y ecosistema.
- Starlette: un marco/conjunto de herramientas ASGI ligero para crear servicios de alto rendimiento.
- aiohttp: cliente/servidor HTTP para asyncio (PEP-3156).
- sanic: servidor web Python 3.5+ diseñado para funcionar rápidamente.
- Quart: un microframework web asyncio con la misma API que Flask.
- autobahn: WebSocket y WAMP que admiten asyncio y Twisted, para clientes y servidores.
- websockets: una biblioteca para crear servidores y clientes WebSocket en Python centrándose en la corrección y la simplicidad.
- Tornado: marco web de alto rendimiento y biblioteca de redes asincrónicas.
- uvicorn: el servidor ASGI ultrarrápido.
Colas de mensajes
Bibliotecas para implementar aplicaciones utilizando colas de mensajes.
- aioamqp: implementación de AMQP mediante asyncio.
- pyzmq: enlaces de Python para ZeroMQ.
- aiozmq: integración alternativa de Asyncio con ZeroMQ.
- crossbar: Crossbar.io es una plataforma de red para aplicaciones distribuidas y de microservicios.
- asyncio-nats: cliente para el sistema de mensajería NATS.
- aiokafka - Cliente para Apache Kafka.
Controladores de base de datos
Bibliotecas para conectarse a bases de datos.
- asyncpg: biblioteca cliente de base de datos PostgreSQL rápida para Python/asyncio.
- asyncpgsa: Asyncpg con soporte central de sqlalchemy.
- aiopg: biblioteca para acceder a una base de datos PostgreSQL.
- aiomysql - Biblioteca para acceder a una base de datos MySQL
- aioodbc: biblioteca para acceder a bases de datos ODBC.
- motor: el controlador asíncrono de Python para MongoDB.
- redis-py: cliente Redis Python (que ahora incluye aioreadis).
- aiocouchdb: cliente CouchDB creado sobre aiohttp (asyncio).
- aioinflux: cliente InfluxDB creado sobre aiohttp.
- aioes: controlador compatible con Asyncio para elasticsearch.
- peewee-async: implementación de ORM basada en peewee y aiopg.
- GINO: es un ORM Python asincrónico liviano basado en el núcleo SQLAlchemy, con dialecto asyncpg.
- Tortoise ORM: ORM nativo multibackend con API similar a Django y fácil gestión de relaciones.
- Bases de datos: acceso asíncrono a la base de datos para SQLAlchemy core, con soporte para PostgreSQL, MySQL y SQLite.
- Prisma Client Python: un ORM totalmente seguro y generado automáticamente, impulsado por Pydantic y diseñado específicamente para su esquema, admite SQLite, PostgreSQL, MySQL, MongoDB, MariaDB y más.
- Piccolo: un generador de consultas/ORM que puede funcionar en modos asíncronos y sincronizados, con una agradable GUI de administración y middleware ASGI.
- Beanie: un ODM asíncrono de MongoDB basado en motor y Pydantic.
Redes
Bibliotecas para comunicarte en tu red.
- AsyncSSH: proporciona una implementación asincrónica de cliente y servidor del protocolo SSHv2.
- aiodns: solucionador de DNS simple para asyncio.
- aioping: implementación rápida y asíncrona del protocolo ICMP (ping).
- httpx: cliente HTTP asíncrono para Python 3 con API compatible con solicitudes.
GrafoQL
Bibliotecas para construir servidores GraphQL.
- Ariadne: primera biblioteca de Python con esquemas para implementar servidores GraphQL.
- Tartiflette: primer motor GraphQL Python 3.6+ de esquema construido sobre
libgraphqlparser
. - Strawberry: servidor Python 3 GraphQL de código primero con compatibilidad con Django, Flask y FastAPI/Starlette.
Pruebas
Bibliotecas para probar aplicaciones basadas en asyncio.
- aiomock: una biblioteca simulada de Python que admite métodos asíncronos.
- asynctest: mejora el paquete unittest estándar con funciones para realizar pruebas. bibliotecas asincio
- pytest-asyncio: soporte de Pytest para asyncio.
- respuestas - Asyncio http burlándose. Similar a la biblioteca de respuestas utilizada para solicitudes.
- aioresponses: ayuda para solicitudes web simuladas/falsas en el paquete aiohttp de Python.
Bucles alternativos
Implementaciones alternativas de bucle asíncio.
- uvloop: implementación ultrarrápida del bucle de eventos asyncio sobre libuv.
Varios
Otras bibliotecas asincio increíbles.
- aiochan: simultaneidad estilo CSP con canales, selección y multiprocesamiento además de asyncio.
- aiocache: administrador de caché para diferentes backends.
- aiofiles: soporte de archivos para asyncio.
- aiopath:
pathlib
asincrónica para asyncio. - aiodebug: una pequeña biblioteca para monitorear y probar programas asyncio.
- aiorun: una función
run()
que maneja todo el texto estándar habitual para el inicio y el apagado elegante. - aiosc: implementación ligera de control de sonido abierto.
- aioserial: un reemplazo directo de pySerial.
- aiozipkin: instrumentación de seguimiento distribuido para asyncio con zipkin
- asgiref: utilidades de backend para la integración de ASGI a WSGI, incluye envoltorios de funciones sync_to_async y async_to_sync.
- async_property: decorador de Python para propiedades asíncronas.
- ruia: un micromarco de raspado web asíncrono basado en asyncio.
- kubernetes_asyncio: biblioteca de cliente asíncrono para Kubernetes.
- aiomisc - Utilidades diversas para
asyncio
. - taskiq: administrador de tareas distribuido asíncrono (como el apio, pero asíncrono).
Escritos
Documentación, publicaciones de blog y otros escritos increíbles sobre asyncio.
- Documentación oficial de asyncio: E/S asincrónicas, bucle de eventos, rutinas y tareas.
- Introducción breve y bien escrita a asyncio: generadores, corrutinas, rutinas nativas y async/await.
- AsyncIO para el desarrollador de Python que trabaja: una suave introducción a la programación asincrónica desde ejemplos básicos hasta la recuperación de URL.
- Límites de prueba de Python aiohttp: realización de 1 millón de solicitudes con python-aiohttp.
- ASGI (Asynchronous Server Gateway Interface): un sucesor espiritual de WSGI, destinado a proporcionar una interfaz estándar entre servidores web, marcos y aplicaciones Python con capacidad asincrónica.
- Introducción a los primeros principios de Asyncio: una introducción sencilla a los primeros principios sobre el funcionamiento interno de Asyncio.
- Desarrollo y prueba de una API asincrónica con FastAPI y Pytest: este tutorial analiza cómo desarrollar y probar una API asincrónica con FastAPI mediante el desarrollo basado en pruebas (TDD).
- Concurrencia de Python con asyncio: aprenda cómo acelerar el código Python lento con programación concurrente y la biblioteca asyncio de vanguardia.
Negociaciones
Grabaciones de charlas increíbles sobre asyncio.
- Temas de interés (Python Asyncio) | presentación de pantalla | diapositivas - Keynote de PyCon Brasil 2015 (David Beazley).
- Tutorial de E/S asincrónicas de Python: tutorial de código de 8 partes (Philip Guo).
- Async/await en Python 3.5 y por qué es fantástico: EuroPython 2016 (Yury Selivanov).
- Miedo y espera en Async: un viaje salvaje al corazón del sueño de Coroutine | screencast - discurso de apertura de PyOhio 2016 (David Beazley).
- Python asíncrono para principiantes | diapositivas - PyCon 2017 (Miguel Grinberg).
- Desmitificando las palabras clave Async y Await de Python - JetBrains TV 2020 (Michael Kennedy)
Alternativas a asincio
Enfoques alternativos a la programación asíncrona en Python, algunos de los cuales intentan admitir cierta compatibilidad con asyncio
, otros no son compatibles en absoluto.
- curio: la biblioteca de concurrencia de rutinas.
- Puente Curio-Asyncio - curiosidad básica -> puente de rutina asyncio.
- trío: E/S asíncrona pitónica para humanos y personas serpiente.
- trio-asyncio: reimplementación del bucle principal asyncio sobre Trio.
- AnyIO: marco de redes y concurrencia asincrónica de alto nivel que funciona sobre trio o asyncio.