5874fb73ac661c2d4596d626314c46f80c2a8162
[oweals/gnunet.git] / doc / structure.dot
1 // house = application
2 // circle (default) = service
3 // box = daemon
4 // diamond = library
5 // black line = dependency
6 // blue line = extension via plugin
7 // red line = possibly useful 
8 // dashed = in planning
9
10 // this is what we have...o
11 digraph dependencies {
12 splines = true;
13
14   fs [shape=house];
15   fs -> dht;
16   fs -> core;
17   fs -> datastore;
18   fs -> mesh;
19   fs -> ats;
20   fs -> block [style=dotted,color=blue];
21   fs -> identity;
22   exit [shape=box];
23   exit -> mesh;
24   exit -> tun;
25   vpn -> mesh;
26   vpn -> regex;
27   vpn -> tun;
28   pt [shape=house];
29   pt -> mesh;
30   pt -> vpn;
31   pt -> dns;
32   dv -> ats;
33   dns -> tun;
34   gns [shape=house];
35   gns -> namestore;
36   gns -> dns;
37   gns -> dht;
38   gns -> block [style=dotted,color=blue];
39   gns -> identity;
40   gns -> revocation;
41   revocation -> core;
42   revocation -> set;
43   namestore -> identity;
44   dht -> core;
45   dht -> nse;
46   dht -> block;
47   dht -> datacache;
48   dht -> peerinfo;
49   dht -> hello;
50   nse -> core;
51   regex -> block [style=dotted,color=blue];
52   block [shape=diamond];
53   datacache [shape=diamond];
54   mesh -> core [weight=2];
55   mesh -> dht;
56   mesh -> block [style=dotted,color=blue];
57   conversation [shape=house];
58   conversation -> mesh;
59   conversation -> gns;
60   regex -> dht;
61   core -> transport;
62   topology [shape=box];
63   topology -> peerinfo;
64   topology -> transport;
65   topology -> core;
66   topology -> hello;
67   hostlist [shape=box];
68   hostlist -> core;
69   hostlist -> peerinfo;
70   hostlist -> hello;
71   transport -> ats;
72   transport -> hello;     
73   transport -> peerinfo;
74   transport -> nat;
75   transport -> fragmentation;
76   dv [shape=egg];
77   dv -> transport [color=blue,style=dotted];
78   dv -> core;
79   dv -> set;
80   consensus -> set;
81   consensus -> mesh;
82   scalarproduct -> set;
83   scalarproduct -> mesh;
84   set -> mesh;
85   peerinfo -> hello;
86   fragmentation [shape=diamond];
87   hello [shape=diamond];
88   nat [shape=diamond];
89   tun [shape=diamond];
90 }
91
92 // this is what might happen...
93 digraph plan {
94 splines = true;
95
96 // // secushare roadmap:
97   secushare [shape=house,style=dashed];
98   psyc [style=dashed];
99   secushare -> psyc [style=dashed];
100   secushare -> voting [style=dashed,color=red];
101   secushare -> gns [style=dashed];
102   secushare -> fs [style=dashed,color=red];
103   secushare -> reuters [style=dashed,color=red];
104   secushare -> messaging [style=dashed,color=red];
105   psyc -> multicast [style=dashed];
106
107 // // voting roadmap:
108   voting [shape=house,style=dashed];
109   voting -> consensus [style=dashed];
110   voting -> mesh [style=dashed,color=red];
111
112 // // reuters roadmap:
113   reuters [shape=house,style=dashed];
114   dotproduct [style=dashed];
115   reuters -> dotproduct [style=dashed];
116   dotproduct -> set [style=dashed];
117   dotproduct -> mesh [style=dashed];
118   messaging [style=dashed];  
119   messaging -> regex [style=dashed];
120   messaging -> mesh [style=dashed];
121   messaging -> dht [style=dashed];
122   reuters -> messaging [style=dashed,color=red];
123   reuters -> multicast [style=dashed,color=red];
124   reuters -> mesh [style=dashed,color=red];
125   reuters -> core [style=dashed,color=red];
126
127
128 // // core roadmap:
129   dht -> ats [style=dashed,color=red];
130   mesh -> ats [style=dashed,color=red];
131   vpn -> multicast [style=dashed,color=red];
132   exit -> multicast [style=dashed,color=red];
133   multicast [style=dashed];
134   multicast -> mesh [style=dashed];
135
136   fs [shape=house];
137   gns [shape=house];
138   exit [shape=box];
139 }