Feed4j - Parser RSS haute performance pour Java
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 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import 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());
}
} |
Configuration avancée :
Code:
1 2 3 4 5 6 7 8 9 10 11
| import 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"); |
🏗️ Points d'architecture notables
- 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 ?