Skip to content

cianom/bolt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

124 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bolt UDP

logo

Bolt is a UDP-based networking library which that offers support for:

  • Optional reliability.
  • Optional ordering.
  • Automatic serialization of large messages into packets.
  • Session management.
  • High level Client and multi-tenanted Server endpoints.
  • Reactive API for easy handling of both messages and connection state events.
  • Custom codec registration for message types.
  • Session statistics.
  • Application level simulation of packet loss, latency and jitter.

Proposed Work

  • Publish to maven central
  • Single Sender/Receiver threads
  • Review all thread sleeps in production code
  • Consider 16/32 bit packet checksum (UDP checksum is only 16 bit - not safe enough)
  • Optimize bandwidth limit pipe polling
  • Compatibility version
  • Rendezvous mode
  • Discoverable MTU
  • Retransmit strategy (aggressive, on NAK)
  • Reduce 1+ second startup of local client/server
  • Consider making a sequence number class to encapsulate overflow, comparison, etc logic
  • Configurable timeout on no response
  • Review Javadoc
  • Separate to core and api packages
  • IPv6 support
  • Performance testing high-volume of single packets
  • Performance testing, high-volume of large messages
  • General performance testing
  • Validate thread cleanup
  • Improve statistics legibility
  • Improve performance of sender onAcknowledgement
  • Improve performance in high-packet loss scenarios

About

Reliable UDP

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages