It might be smart to switch the rust version from threads to async tasks instead for the rust version.
For the java version we should switch to using a threadpool executor.
I have decided to instead change to single thread send/receive and spam filtering to one thread, making it a single threaded application, however with rust it is 2 threads if you include the timer thread for the periodic tasks.
Rust DHT library when returning we should be always returning as a Result<> not Option<>, Option<> is intended for storing, Result<> is for responding / getting.