Construction d'une micro-bibliothèque de boucle d'événements asynchrones à partir de zéro

Ce projet implémente une bibliothèque de boucle d'événements asynchrones minimale mais complète en fonctionnalités, à partir de zéro, à des fins pédagogiques. Il démontre les concepts clés de la programmation asynchrone : planification et gestion des tâches, multiplexage E/S avec des sockets non bloquants, fonctionnalités de délai d'attente et de suspension, annulation des tâches et concurrence basée sur les coroutines. La bibliothèque utilise les coroutines basées sur les générateurs de Python et le module `select` pour le multiplexage E/S, offrant un modèle simplifié du fonctionnement interne des frameworks asynchrones modernes comme `asyncio`. Découvrez la magie derrière `await`, le fonctionnement de `yield from` et la communication entre les coroutines et la boucle d'événements.