Hi, Crust developer here
tl;dr Crust is not a replacement for CJDNS.
Crust has a very clear responsibility - reliable peer-to-peer connections. It’s a generic networking library that essentially tries to connect two nodes/peers/computers directly without an intermediate server. And that’s it, Crust doesn’t know how it will be used. For example one could build another Skype using Crust, or peer-to-peer file sharing app , or Crust could be used in gaming to make peers connect together directly, etc.
Crust solves some generic peer-to-peer problems and It has some clever tricks to do that:
- it uses IGD protocol to forward ports in your router so that computers behind NAT/router/firewall would be accessible from the Internet
- if IGD is not available, it tries to do hole-punching techniques. Basically these are exploits to forward a port in your router NAT table to expose youself to the Internet via some port.
- Crust messages are encrypted, hence secure communication
- etc.
BUT, Crust doesn’t have any sense of routing or DHT, etc.
Although, I believe that potentially one could build smth like CJDNS when combined Crust and Routing libraries.
Does that make more sense?