// diamond = library
// black line = dependency
// blue line = extension via plugin
+// red line = possibly useful
// dashed = in planning
+// this is what we have...o
digraph dependencies {
splines = true;
+
voting [shape=house];
voting -> consensus;
- voting -> mesh;
+ voting -> identity;
+ voting -> cadet;
+ voting -> secretsharing;
+ secretsharing -> consensus;
+
fs [shape=house];
fs -> dht;
fs -> core;
fs -> datastore;
- fs -> mesh;
+ fs -> cadet;
fs -> ats;
fs -> block [style=dotted,color=blue];
- exit -> mesh;
+ fs -> identity;
+ exit [shape=box];
+ exit -> cadet;
exit -> tun;
- vpn -> mesh;
+ exit -> dnsstub;
+ vpn -> cadet;
+ vpn -> regex;
vpn -> tun;
pt [shape=house];
- pt -> mesh;
+ pt -> cadet;
pt -> vpn;
pt -> dns;
+ pt -> dnsparser;
dv -> ats;
- dns -> mesh;
dns -> tun;
+ dns -> dnsstub;
gns [shape=house];
gns -> namestore;
gns -> dns;
gns -> dht;
gns -> block [style=dotted,color=blue];
-// psycd [style=dashed,shape=house];
-// psycd -> mesh [style=dashed];
+ gns -> revocation;
+ gns -> vpn;
+ gns -> dnsparser;
+ gns -> dnsstub;
+ gns -> identity;
+ revocation -> core;
+ revocation -> set;
+ namestore -> identity;
+ namestore -> gnsrecord;
+ dnsparser -> gnsrecord [style=dotted,color=blue];
+ conversation -> gnsrecord [style=dotted,color=blue];
+ gns -> gnsrecord [style=dotted,color=blue];
dht -> core;
dht -> nse;
dht -> block;
dht -> datacache;
-// dht -> ats [style=dashed];
+ dht -> peerinfo;
+ dht -> hello;
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];
+ cadet -> core [weight=2];
+ cadet -> dht;
+ cadet -> block [style=dotted,color=blue];
+ conversation [shape=house];
+ conversation -> cadet;
+ conversation -> gns;
+ conversation -> identity;
+ conversation -> speaker;
+ conversation -> microphone;
+ speaker [shape=diamond];
+ microphone [shape=diamond];
regex -> dht;
core -> transport;
- core -> peerinfo;
topology [shape=box];
+ topology -> peerinfo;
topology -> transport;
topology -> core;
topology -> hello;
hostlist -> peerinfo;
hostlist -> hello;
transport -> ats;
- transport -> hello;
+ transport -> hello;
transport -> peerinfo;
transport -> nat;
transport -> fragmentation;
dv -> core;
dv -> set;
consensus -> set;
- set -> mesh;
+ consensus -> cadet;
+ scalarproduct -> set;
+ scalarproduct -> cadet;
+ set -> cadet;
peerinfo -> hello;
fragmentation [shape=diamond];
hello [shape=diamond];
nat [shape=diamond];
tun [shape=diamond];
+ dnsparser [shape=diamond];
+ dnsstub [shape=diamond];
+}
+
+
+// this is what we have, excluding libs
+digraph dependencies_no_libs {
+splines = true;
+
+ voting [shape=house];
+ voting -> consensus;
+ voting -> identity;
+ voting -> cadet;
+ voting -> secretsharing;
+ secretsharing -> consensus;
+
+ fs [shape=house];
+ fs -> dht;
+ fs -> core;
+ fs -> datastore;
+ fs -> cadet;
+ fs -> ats;
+ fs -> identity;
+ exit [shape=box];
+ exit -> cadet;
+ vpn -> cadet;
+ vpn -> regex;
+ pt [shape=house];
+ pt -> cadet;
+ pt -> vpn;
+ pt -> dns;
+ dv -> ats;
+ gns [shape=house];
+ gns -> namestore;
+ gns -> dns;
+ gns -> dht;
+ gns -> revocation;
+ gns -> vpn;
+ gns -> identity;
+ gns -> gnsrecord;
+ revocation -> core;
+ revocation -> set;
+ namestore -> identity;
+ dht -> core;
+ dht -> nse;
+ dht -> peerinfo;
+ nse -> core;
+ cadet -> core [weight=2];
+ cadet -> dht;
+ conversation [shape=house];
+ conversation -> cadet;
+ conversation -> gns;
+ conversation -> identity;
+ regex -> dht;
+ core -> transport;
+ topology [shape=box];
+ topology -> peerinfo;
+ topology -> transport;
+ topology -> core;
+ hostlist [shape=box];
+ hostlist -> core;
+ hostlist -> peerinfo;
+ transport -> ats;
+ transport -> peerinfo;
+ dv [shape=egg];
+ dv -> transport [color=blue,style=dotted];
+ dv -> core;
+ dv -> set;
+ consensus -> set;
+ consensus -> cadet;
+ scalarproduct -> set;
+ scalarproduct -> cadet;
+ set -> cadet;
+}
+
+
+// this is what might happen...
+digraph plan {
+splines = true;
+
+// // secushare roadmap:
+ secushare [shape=house,style=dashed];
+ psyc [style=dashed];
+ social -> psyc [style=dashed];
+ psyc -> psycstore [style=dashed];
+ psycstore;
+ social [style=dashed];
+ secushare -> social [style=dashed];
+ secushare -> voting [style=dashed,color=red];
+ secushare -> gns [style=dashed];
+ secushare -> fs [style=dashed,color=red];
+ secushare -> reuters [style=dashed,color=red];
+ secushare -> identity [style=dashed,color=red];
+ secushare -> messaging [style=dashed,color=red];
+ secushare -> conversation [style=dashed,color=red];
+ psyc -> multicast [style=dashed];
+
+// // reuters roadmap:
+ reuters [shape=house,style=dashed];
+ scalarproduct [style=dashed];
+ reuters -> scalarproduct [style=dashed];
+ reuters -> identity [style=dashed];
+ scalarproduct -> set [style=dashed];
+ scalarproduct -> cadet [style=dashed];
+ messaging [style=dashed];
+ messaging -> regex [style=dashed];
+ messaging -> cadet [style=dashed];
+ messaging -> dht [style=dashed];
+ reuters -> messaging [style=dashed,color=red];
+ reuters -> multicast [style=dashed,color=red];
+ reuters -> cadet [style=dashed,color=red];
+ reuters -> core [style=dashed,color=red];
+// // core roadmap:
+ dht -> ats [style=dashed,color=red];
+ cadet -> ats [style=dashed,color=red];
+ vpn -> multicast [style=dashed,color=red];
+ exit -> multicast [style=dashed,color=red];
+ multicast [style=dashed];
+ multicast -> cadet [style=dashed];
+
+ fs [shape=house];
+ gns [shape=house];
+ conversation [shape=house];
+ exit [shape=box];
}