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