The Network project is an encrypted, high-performance, event-driven/reactive Network stack with DNS and RMI, using Netty, Kryo, KryoNet RMI, and LZ4 via TCP/UDP.
These are the main features:
- The connection between endpoints is AES256-GCM / EC curve25519.
- The connection data is LZ4 compressed and byte-packed for small payload sizes.
- The connection supports:
- Remote Method Invocation
- Blocking
- Non-Blocking
- Void returns
- Exceptions can be returned
- Sending data when Idle
- "Pinging" the remote end (for measuring round-trip time)
- Firewall connections by IP+CIDR
- Specify the connection type (nothing, compress, compress+encrypt)
- The available transports are TCP and UDP
- There are simple wrapper classes for:
- Server
- Client
- MultiCast Broadcast client and server discovery
- Note: There is a maximum packet size for UDP, 508 bytes *to guarantee it's unfragmented*
- This is for cross-platform use, specifically - linux 32/64, mac 64, and windows 32/64. Java 1.8+