Introduction
Le Simple Network Framework for Java (SNF4J) est un cadre d'application réseau asynchrone piloté par événements pour un développement rapide et facile d'applications réseau.
Le SNF4J sert de cadre d'application réseau simple, léger et indépendant aidant au développement d'applications réseau hautes performances et évolutives. Il fournit une API asynchrone via Java NIO pour gérer divers transports comme TCP/IP, UDP/IP et SCTP/IP.
Le framework est conçu pour être simple à utiliser et moyennement facile à comprendre. Les développeurs d’applications qui aiment rester à l’écoute ne seront pas submergés par le ton du code source. Il est orienté vers la fourniture de fonctionnalités réseau de base telles que le transfert de données entre deux ou plusieurs applications réseau communicantes d'une manière simple mais efficace. Pour assurer la confidentialité et l'intégrité des données transférées, il prend en charge les protocoles SSL/TLS/DTLS.
Conception
- API unifiée pour les types de couches de transport : TCP, UDP et SCTP
- API basée sur les événements pour développer des applications réseau asynchrones
- Moteurs de protocole personnalisables pour les types de couches de transport : TCP et UDP
- Utilitaires pour le développement d'applications serveur UDP
- API simple pour les pipelines encodeurs-décodeurs personnalisables
- Facilite la programmation d'applications multithread de manière monothread
- Création de pipelines de sessions partageant le même canal de socket
Performances et évolutivité
- Prise en charge d'une copie de mémoire inutile minimisée, voire nulle
- Prise en charge d'une faible utilisation de la mémoire dans les applications multisessions
- Latence inférieure
- compression zlib et gzip
- Regroupement de boucles de sélection personnalisable
- Allocateurs de tampon d'octets personnalisables
Modèle de fil
- Tous les événements du gestionnaire (c'est-à-dire lecture, événement, minuterie, exception, incident) sont déclenchés à partir du thread qui effectue les E/S pour le canal (thread d'E/S).
- Toutes les méthodes de session sont thread-safe et peuvent être appelées à partir de n'importe quel thread, y compris le thread d'E/S et les threads non-E/S.
- Tout événement de gestionnaire déclenché comme effet secondaire de l'appel d'une méthode de session est déclenché à partir du thread d'E/S.
- Le code du codec est toujours traité dans le thread d'E/S
- Le code du moteur est toujours traité dans le thread d'E/S
Protocoles pris en charge
- Protocole de connexion au proxy Web HTTP
- Protocoles SOCKS
- Protocole WebSocket
- Boîte à outils pour le protocole TLS 1.3 (analyseurs/formatteurs, moteur de prise de contact, utilitaires de couche d'enregistrement et moteur TLS complet)
Sécurité
- Prise en charge complète des protocoles SSL/TLS/DTLS
- Connexion sécurisée au proxy Web
Intégration
- Aucune dépendance supplémentaire, JDK 8 ou JDK 9 (pour DTLS) suffit
- Journalisation entièrement personnalisable (SLF4J, Log4j 2 déjà ici)
- Usines de fils personnalisables
- Minuteries de session personnalisables
- Modèles de retransmission de paquets personnalisables lors des poignées de main DTLS
Compilation
Vous avez besoin d'Apache maven 3.8 ou supérieur, Java 8 ou supérieur
Links