fix testcase
[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   voting [shape=house];
15   voting -> consensus;
16   voting -> identity;
17   voting -> cadet;
18   voting -> secretsharing;
19   secretsharing -> consensus;
20
21   fs [shape=house];
22   fs -> dht;
23   fs -> core;
24   fs -> datastore;
25   fs -> cadet;
26   fs -> ats;
27   fs -> block [style=dotted,color=blue];
28   fs -> identity;
29   exit [shape=box];
30   exit -> cadet;
31   exit -> tun;
32   exit -> dnsstub;
33   vpn -> cadet;
34   vpn -> regex;
35   vpn -> tun;
36   pt [shape=house];
37   pt -> cadet;
38   pt -> vpn;
39   pt -> dns;
40   pt -> dnsparser;
41   dv -> ats;
42   dns -> tun;
43   dns -> dnsstub;
44   zonemaster [shape=house];
45   zonemaster -> namestore;
46   zonemaster -> dht;
47   gns -> dns;
48   gns -> dht;
49   gns -> block [style=dotted,color=blue];
50   gns -> revocation;
51   gns -> vpn;
52   gns -> dnsparser;
53   gns -> dnsstub;
54   gns -> identity;
55   revocation -> core;
56   revocation -> set;
57   namestore -> identity;
58   namestore -> gnsrecord;
59   dnsparser -> gnsrecord [style=dotted,color=blue];
60   conversation -> gnsrecord [style=dotted,color=blue];
61   gns -> gnsrecord [style=dotted,color=blue];
62   dht -> core;
63   dht -> nse;
64   dht -> block;
65   dht -> datacache;
66   dht -> peerinfo;
67   dht -> hello;
68   nse -> core;
69   regex -> block [style=dotted,color=blue];
70   block [shape=diamond];
71   datacache [shape=diamond];
72   cadet -> core [weight=2];
73   cadet -> dht;
74   cadet -> block [style=dotted,color=blue];
75   conversation [shape=house];
76   conversation -> cadet;
77   conversation -> gns;
78   conversation -> identity;
79   conversation -> speaker;
80   conversation -> microphone;
81   speaker [shape=diamond];
82   microphone [shape=diamond];
83   regex -> dht;
84   core -> transport;
85   topology [shape=box];
86   topology -> peerinfo;
87   topology -> transport;
88   topology -> core;
89   topology -> hello;
90   hostlist [shape=box];
91   hostlist -> core;
92   hostlist -> peerinfo;
93   hostlist -> hello;
94   transport -> ats;
95   transport -> hello;
96   transport -> peerinfo;
97   transport -> nat;
98   transport -> fragmentation;
99   dv [shape=egg];
100   dv -> transport [color=blue,style=dotted];
101   dv -> core;
102   dv -> set;
103   consensus -> set;
104   consensus -> cadet;
105   scalarproduct -> set;
106   scalarproduct -> cadet;
107   set -> cadet;
108   peerinfo -> hello;
109   fragmentation [shape=diamond];
110   hello [shape=diamond];
111   nat [shape=diamond];
112   tun [shape=diamond];
113   dnsparser [shape=diamond];
114   dnsstub [shape=diamond];
115
116   secushare [shape=house,style=dashed];
117   multicast [style=dashed];
118   psyc [style=dashed];
119   social -> psyc [style=dashed];
120   social -> gns [style=dashed];
121   psyc -> psycstore [style=dashed];
122   psycstore;
123   social [style=dashed];
124   secushare -> social [style=dashed];
125   secushare -> identity [style=dashed];
126   psyc -> multicast [style=dashed];
127   multicast -> cadet [style=dashed];
128
129   reuters [shape=house,style=dashed];
130   reuters -> scalarproduct [style=dashed];
131
132   rps [style=dashed];
133   topology -> rps [style=dashed];
134   rps -> core [style=dashed];
135 }
136
137
138 // this is what we have, excluding libs and stores
139 digraph dependencies_no_libs {
140 splines = true;
141
142   voting [shape=house];
143   voting -> consensus;
144   voting -> identity;
145   voting -> cadet;
146   voting -> secretsharing;
147   secretsharing -> consensus;
148
149   fs [shape=house];
150   fs -> dht;
151   fs -> core;
152   fs -> cadet;
153   fs -> ats;
154   fs -> identity;
155   exit [shape=box];
156   exit -> cadet;
157   vpn -> cadet;
158   vpn -> regex;
159   pt [shape=house];
160   pt -> cadet;
161   pt -> vpn;
162   pt -> dns;
163   dv -> ats;
164   gns [shape=house];
165   gns -> dns;
166   gns -> dht;
167   gns -> revocation;
168   gns -> vpn;
169   gns -> identity;
170   revocation -> core;
171   revocation -> set;
172   dht -> core;
173   dht -> nse;
174   nse -> core;
175   cadet -> core [weight=2];
176   cadet -> dht;
177   conversation [shape=house];
178   conversation -> cadet;
179   conversation -> gns;
180   conversation -> identity;
181   regex -> dht;
182   core -> transport;
183   topology [shape=box];
184   topology -> transport;
185   topology -> core;
186   hostlist [shape=box];
187   hostlist -> core;
188   transport -> ats;
189   dv [shape=egg];
190   dv -> transport [color=blue,style=dotted];
191   dv -> core;
192   dv -> set;
193   consensus -> set;
194   consensus -> cadet;
195   scalarproduct -> set;
196   scalarproduct -> cadet;
197   set -> cadet;
198
199
200   secushare [shape=house,style=dashed];
201   multicast [style=dashed];
202   psyc [style=dashed];
203   social -> psyc [style=dashed];
204   social -> gns [style=dashed];
205   social [style=dashed];
206   secushare -> social [style=dashed];
207   secushare -> identity [style=dashed];
208   psyc -> multicast [style=dashed];
209   multicast -> cadet [style=dashed];
210
211   reuters [shape=house,style=dashed];
212   reuters -> scalarproduct [style=dashed];
213
214   rps [style=dashed];
215   topology -> rps [style=dashed];
216   rps -> core [style=dashed];
217 }
218
219
220 // this is what we have, excluding and details
221 digraph dependencies_no_details {
222 splines = true;
223
224   voting [shape=house];
225   voting -> consensus;
226   voting -> cadet;
227   voting -> secretsharing;
228   secretsharing -> consensus;
229
230   fs [shape=house];
231   fs -> dht;
232   fs -> core;
233   fs -> cadet;
234   vpn -> cadet;
235   vpn -> dht;
236   pt [shape=house];
237   pt -> cadet;
238   pt -> vpn;
239   gns [shape=house];
240   gns -> dht;
241   gns -> revocation;
242   gns -> vpn;
243   revocation -> core;
244   revocation -> set;
245   dht -> core;
246   dht -> nse;
247   nse -> core;
248   cadet -> core [weight=2];
249   cadet -> dht;
250   conversation [shape=house];
251   conversation -> cadet;
252   conversation -> gns;
253   core -> transport;
254   consensus -> set;
255   consensus -> cadet;
256   scalarproduct -> set;
257   scalarproduct -> cadet;
258   set -> cadet;
259
260
261   secushare [shape=house,style=dashed];
262   multicast [style=dashed];
263   psyc [style=dashed];
264   social -> psyc [style=dashed];
265   social -> gns [style=dashed];
266   social [style=dashed];
267   secushare -> social [style=dashed];
268   psyc -> multicast [style=dashed];
269   multicast -> cadet [style=dashed];
270
271   reuters [shape=house,style=dashed];
272   reuters -> scalarproduct [style=dashed];
273 }
274
275