// 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;
fs -> dht;
fs -> core;
fs -> datastore;
- fs -> stream;
- fs -> ats [style=dashed];
+ fs -> mesh;
+ fs -> ats;
fs -> block [style=dotted,color=blue];
+ fs -> identity;
+ exit [shape=box];
exit -> mesh;
exit -> tun;
+ exit -> dnsstub;
vpn -> mesh;
+ vpn -> regex;
vpn -> tun;
pt [shape=house];
pt -> mesh;
pt -> vpn;
pt -> dns;
- dns -> mesh;
+ pt -> dnsparser;
+ dv -> ats;
dns -> tun;
+ dns -> dnsstub;
gns [shape=house];
gns -> namestore;
gns -> dns;
gns -> dht;
- gns -> stream [style=dashed];
gns -> block [style=dotted,color=blue];
-// psycd [style=dashed,shape=house];
-// psycd -> mesh [style=dashed];
- stream [shape=diamond];
- stream -> mesh;
- stream -> lockmanager;
+ 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 [color=blue];
- mesh -> ats [style=dashed];
- regex [shape=diamond];
+ mesh -> block [style=dotted,color=blue];
+ conversation [shape=house];
+ conversation -> mesh;
+ 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 [style=dashed,shape=egg,layer=core];
- dv -> transport [style=dashed,color=blue];
- dv -> core [style=dashed];
- dv -> consensus;
- consensus -> dv [style=invis]; // force dv below consensus
+ dv [shape=egg];
+ dv -> transport [color=blue,style=dotted];
+ dv -> core;
+ dv -> set;
+ consensus -> set;
consensus -> mesh;
- core -> dv [style=invis]; // force dv below core
+ scalarproduct -> set;
+ scalarproduct -> mesh;
+ set -> mesh;
peerinfo -> hello;
fragmentation [shape=diamond];
hello [shape=diamond];
nat [shape=diamond];
tun [shape=diamond];
+ dnsparser [shape=diamond];
+ dnsstub [shape=diamond];
+}
+
- subgraph STREAM {
- stream; lockmanager;
- }
- subgraph DHT {
- dht; nse; datacache; block;
- }
- subgraph MESH {
- mesh; regex;
- }
- subgraph TRANSPORT {
- transport; dv; peerinfo; hello; nat; ats;
- }
- subgraph CORE {
- core; hostlist; topology;
- }
- subgraph FS {
- fs; datastore;
- }
- subgraph GNS {
- gns; namestore;
- }
- subgraph VPN {
- vpn; pt; exit;
- }
+// this is what we have, excluding libs
+digraph dependencies_no_libs {
+splines = true;
+ fs [shape=house];
+ fs -> dht;
+ fs -> core;
+ fs -> datastore;
+ fs -> mesh;
+ fs -> ats;
+ fs -> identity;
+ exit [shape=box];
+ exit -> mesh;
+ vpn -> mesh;
+ vpn -> regex;
+ pt [shape=house];
+ pt -> mesh;
+ 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;
+ mesh -> core [weight=2];
+ mesh -> dht;
+ conversation [shape=house];
+ conversation -> mesh;
+ 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 -> mesh;
+ scalarproduct -> set;
+ scalarproduct -> mesh;
+ set -> mesh;
}
+
+
+// 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];
+
+// // voting roadmap:
+ voting [shape=house,style=dashed];
+ voting -> consensus [style=dashed];
+ voting -> identity [style=dashed];
+ voting -> mesh [style=dashed,color=red];
+
+// // reuters roadmap:
+ reuters [shape=house,style=dashed];
+ scalarproduct [style=dashed];
+ reuters -> scalarproduct [style=dashed];
+ reuters -> identity [style=dashed];
+ scalarproduct -> set [style=dashed];
+ scalarproduct -> mesh [style=dashed];
+ messaging [style=dashed];
+ messaging -> regex [style=dashed];
+ messaging -> mesh [style=dashed];
+ messaging -> dht [style=dashed];
+ reuters -> messaging [style=dashed,color=red];
+ reuters -> multicast [style=dashed,color=red];
+ reuters -> mesh [style=dashed,color=red];
+ reuters -> core [style=dashed,color=red];
+
+
+// // core roadmap:
+ dht -> ats [style=dashed,color=red];
+ mesh -> ats [style=dashed,color=red];
+ vpn -> multicast [style=dashed,color=red];
+ exit -> multicast [style=dashed,color=red];
+ multicast [style=dashed];
+ multicast -> mesh [style=dashed];
+
+ fs [shape=house];
+ gns [shape=house];
+ conversation [shape=house];
+ exit [shape=box];
+}
\ No newline at end of file