- Permet de construire facilement des programmes concurrents à partir d’éléments simples et réutilisables
- Réduit le boilerplate tout en conservant le modèle naturel de Go basé sur les canaux
Fonctionnalités principales et objectifs
- Simplification des tâches de concurrence courantes
- Offre une méthode sûre et propre pour l’exécution de tâches en parallèle, le traitement d’événements en temps réel, etc.
- Abstrait la complexité liée aux goroutines, aux canaux et à la gestion des erreurs.
- Laisse au développeur un contrôle total sur le niveau de concurrence.
- Aide à écrire du code modulaire
- Les fonctions prennent des canaux Go en entrée et renvoient des canaux transformés.
- Il est possible d’enchaîner plusieurs traitements comme dans des pipes Unix.
- Centralisation de la gestion des erreurs
- Les erreurs survenues dans un pipeline peuvent être traitées en un point unique.
- Pour les cas complexes, des outils permettent aussi d’intercepter ou de traiter les erreurs à des endroits précis.
- Simplification du traitement de flux
- Prise en charge des flux infinis.
- Adapté aux gros volumes de données qui ne tiennent pas en mémoire ainsi qu’au traitement en temps réel.
- Prise en charge d’opérations avancées
- Fournit des fonctionnalités avancées comme le traitement par lots, le Map-Reduce, la division et la fusion de flux.
- Prend en charge des pipelines non seulement linéaires, mais aussi sous forme de DAG (Directed Acyclic Graph).
- Prise en charge des extensions personnalisées
- Compatible avec les canaux Go standard et facilite l’ajout de fonctions personnalisées.
- Légèreté et absence de dépendances
- Son API réduite et son approche zero-dependency permettent une intégration facile dans des projets existants.
- Minimise l’utilisation des ressources.
Aucun commentaire pour le moment.