// house = application // circle (default) = service // box = daemon // diamond = library // black line = dependency // blue line = extension via plugin // dashed = in planning digraph dependencies { splines = true; voting [shape=house]; voting -> consensus; voting -> stream; fs [shape=house]; fs -> dht; fs -> core; fs -> datastore; fs -> stream; fs -> ats; fs -> block [style=dotted,color=blue]; exit -> mesh; exit -> tun; vpn -> mesh; vpn -> tun; pt [shape=house]; pt -> mesh; pt -> vpn; pt -> dns; dv -> ats; dns -> mesh; dns -> tun; gns [shape=house]; gns -> namestore; gns -> dns; gns -> dht; gns -> block [style=dotted,color=blue]; // psycd [style=dashed,shape=house]; // psycd -> mesh [style=dashed]; stream [shape=diamond]; stream -> mesh; stream -> lockmanager; dht -> core; dht -> nse; dht -> block; dht -> datacache; // dht -> ats [style=dashed]; nse -> core; regex -> block [style=dotted,color=blue]; block [shape=diamond]; datacache [shape=diamond]; mesh -> core [weight=2]; mesh -> dht; mesh -> regex; mesh -> block [style=dotted,color=blue]; // mesh -> ats [style=dashed]; regex [shape=diamond]; regex -> dht; core -> transport; core -> peerinfo; topology [shape=box]; topology -> transport; topology -> core; topology -> hello; hostlist [shape=box]; hostlist -> core; hostlist -> peerinfo; hostlist -> hello; transport -> ats; transport -> hello; transport -> peerinfo; transport -> nat; transport -> fragmentation; dv [shape=egg]; dv -> transport [color=blue,style=dotted]; dv -> core; dv -> consensus; consensus -> mesh; peerinfo -> hello; fragmentation [shape=diamond]; hello [shape=diamond]; nat [shape=diamond]; tun [shape=diamond]; }