Introducción
Simple Network Framework para Java (SNF4J) es un marco de aplicación de red asíncrono controlado por eventos para un desarrollo rápido y sencillo de aplicaciones de red.
El SNF4J sirve como un marco de aplicación de red simple, liviano e independiente que ayuda a desarrollar aplicaciones de red escalables y de alto rendimiento. Proporciona una API asíncrona a través de Java NIO para manejar varios transportes como TCP/IP, UDP/IP y SCTP/IP.
El marco está diseñado para ser simple de usar y moderadamente fácil de entender. Los desarrolladores de aplicaciones a los que les gusta estar atentos no se sentirán abrumados por un tono de código fuente. Está orientado a brindar una funcionalidad básica de red como la transferencia de datos entre dos o más aplicaciones de red en comunicación de una manera simple pero efectiva. Para proporcionar privacidad e integridad de los datos transferidos, proporciona soporte para los protocolos SSL/TLS/DTLS.
Diseño
- API unificada para tipos de capas de transporte: TCP, UDP y SCTP
- API basada en eventos para desarrollar aplicaciones de red asíncronas
- Motores de protocolo personalizables para tipos de capa de transporte: TCP y UDP
- Utilidades para el desarrollo de aplicaciones de servidor UDP
- API simple para canalizaciones de codificador-decodificador personalizables
- Proporciona facilidad para programar aplicaciones multiproceso en un solo subproceso.
- Creación de canales de sesiones que comparten el mismo canal de socket
Rendimiento y escalabilidad
- Soporte para copia de memoria innecesaria minimizada o incluso nula
- Soporte para baja utilización de memoria en aplicaciones multisesión
- Menor latencia
- compresión zlib y gzip
- Agrupación de bucles selectores personalizables
- Asignadores de búfer de bytes personalizables
Modelo de hilo
- Todos los eventos del controlador (es decir, lectura, evento, temporizador, excepción, incidente) se activan desde el subproceso que realiza E/S para el canal (subproceso de E/S).
- Todos los métodos de sesión son seguros para subprocesos y se pueden llamar desde cualquier subproceso, incluidos los subprocesos de E/S y los subprocesos que no son de E/S.
- Cualquier evento del controlador desencadenado como efecto secundario de llamar al método de una sesión se activa desde el subproceso de E/S.
- El código del códec siempre se procesa en el hilo de E/S.
- El código del motor siempre se procesa en el hilo de E/S.
Protocolos admitidos
- Protocolo de conexión de proxy web HTTP
- Protocolos SOCKS
- Protocolo WebSocket
- Kit de herramientas para el protocolo TLS 1.3 (analizadores/formateadores, motor de protocolo de enlace, utilidades de capa de registro y motor TLS completo)
Seguridad
- Soporte completo para protocolos SSL/TLS/DTLS
- Conexión de proxy web segura
Integración
- Sin dependencias adicionales, JDK 8 o JDK 9 (para DTLS) es suficiente
- Registro totalmente personalizable (SLF4J, Log4j 2 ya está aquí)
- Fábricas de hilos personalizables
- Temporizadores de sesión personalizables
- Modelos de retransmisión de paquetes personalizables durante los protocolos de enlace DTLS
Compilando
Necesita Apache maven 3.8 o superior, Java 8 o superior
Campo de golf