Feed4j - Parser RSS haute performance pour Java
Bonjour à tous,
Je vous présente Feed4j v1.0, une bibliothèque Java moderne et performante dédiée au parsing des flux RSS, conçue pour un usage en production.
🎯 Fonctionnalités principales
- Parsing multi-threadé avec pool de threads configurable pour des performances optimales
- Système de cache intelligent pour éviter les appels réseau redondants
- Support multi-formats de dates (RFC 1123, ISO, et autres formats courants)
- Configuration flexible - personnalisation des timeouts, User-Agent, validation XML
- Résilience aux erreurs - poursuite du traitement même en cas d'échec sur certains éléments
- Thread-safe et prêt pour la production
📦 Utilisation rapide
Utilisation basique :
Configuration avancée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import com.axeldev.Feed4j; import com.axeldev.RssFeed; import com.axeldev.RssItem; // Création de l'instance avec configuration par défaut Feed4j feed4j = new Feed4j(); // Parsing d'un flux RSS RssFeed feed = feed4j.ReadFeed("https://feeds.bbci.co.uk/news/rss.xml"); if (feed != null) { for (RssItem item : feed.getItems()) { System.out.println(item.getTitle() + " - " + item.getPubDate()); } }
🏗️ Points d'architecture notables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11import com.axeldev.Feed4jConfig; // Configuration personnalisée Feed4jConfig config = new Feed4jConfig() .setMaxThreads(8) // 8 threads pour le parsing parallèle .setCacheDurationMs(600000) // Cache de 10 minutes .setConnectTimeout(15000) // Timeout de connexion 15s .setUserAgent("MonApplication/1.0"); // User-Agent personnalisé Feed4j feed4j = new Feed4j(config); RssFeed feed = feed4j.ReadFeed("https://example.com/feed.xml");
- Traitement parallèle des éléments utilisant ExecutorService
- Cache basé sur ConcurrentHashMap avec TTL (Time To Live)
- Parsing SAX avec fallback DOM pour la fiabilité
- API de configuration fluent pour une configuration aisée
- Gestion d'erreurs complète avec logging détaillé
📊 Performances
- Mise à l'échelle automatique du nombre de threads selon les cœurs CPU et la taille du flux
- Cache intelligent réduisant significativement la charge réseau
- Gestion gracieuse des flux RSS malformés sans casser le traitement global
🔧 Prérequis techniques
- Java 11 ou supérieur
- Aucune dépendance externe (Java pur)
- Construction avec Maven
💡 Avantages par rapport aux autres librairies
Feed4j se distingue par son focus sur :
- Les performances grâce au traitement parallèle
- La fiabilité avec une gestion d'erreurs exhaustive
- La flexibilité avec des options de configuration étendues
- La simplicité - facile à utiliser mais puissante quand nécessaire
📚 Documentation et exemples
Une documentation complète, des exemples détaillés et la référence API sont disponibles sur :
GitHub : https://github.com/angle-droit/Feed4j
🤔 Avis et suggestions
Qu'en pensez-vous de cette approche ? Des suggestions d'améliorations ?






Répondre avec citation
Partager