657b91a38479d504aea633b955413bcf66c98bc2
[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 // dashed = in planning
8
9 digraph dependencies {
10 splines = true;
11
12   fs [shape=house];
13   fs -> dht;
14   fs -> core;
15   fs -> datastore;
16   fs -> stream;
17   fs -> ats [style=dashed];
18   fs -> block [style=dotted,color=blue];
19   exit -> mesh;
20   exit -> tun;
21   vpn -> mesh;
22   vpn -> tun;
23   pt [shape=house];
24   pt -> mesh;
25   pt -> vpn;
26   pt -> dns;
27   dns -> mesh;
28   dns -> tun;
29   gns [shape=house];
30   gns -> namestore;
31   gns -> dns;
32   gns -> dht;
33   gns -> stream [style=dashed];
34   gns -> block [style=dotted,color=blue];
35 //  psycd [style=dashed,shape=house];
36 //  psycd -> mesh [style=dashed];
37   stream [shape=diamond];
38   stream -> mesh;
39   stream -> lockmanager;
40   dht -> core;
41   dht -> nse;
42   dht -> block;
43   dht -> datacache;
44   dht -> ats [style=dashed];
45   nse -> core;
46   block [shape=diamond];
47   datacache [shape=diamond];
48   mesh -> core [weight=2];
49   mesh -> dht;
50   mesh -> regex;
51   mesh -> block [color=blue];
52   mesh -> ats [style=dashed];
53   regex [shape=diamond];
54   core -> transport;
55   core -> peerinfo;
56   topology [shape=box];
57   topology -> transport;
58   topology -> core;
59   topology -> hello;
60   hostlist [shape=box];
61   hostlist -> core;
62   hostlist -> peerinfo;
63   hostlist -> hello;
64   transport -> ats;
65   transport -> hello;     
66   transport -> peerinfo;
67   transport -> nat;
68   transport -> fragmentation;
69   dv [style=dashed,shape=egg,layer=core];
70   dv -> transport [style=dashed,color=blue];
71   dv -> core [style=dashed];
72   dv -> consensus;
73   consensus -> dv [style=invis]; // force dv below consensus
74   consensus -> mesh;
75   core -> dv [style=invis]; // force dv below core
76   peerinfo -> hello;
77   fragmentation [shape=diamond];
78   hello [shape=diamond];
79   nat [shape=diamond];
80   tun [shape=diamond];
81
82   subgraph STREAM {
83     stream; lockmanager;
84   }
85   subgraph DHT {
86     dht; nse; datacache; block;
87   }
88   subgraph MESH {
89     mesh; regex;
90   }
91   subgraph TRANSPORT {
92     transport; dv; peerinfo; hello; nat; ats;
93   }
94   subgraph CORE {
95     core; hostlist; topology;
96   }
97   subgraph FS {
98     fs; datastore;
99   }
100   subgraph GNS {
101     gns; namestore;
102   }
103   subgraph VPN {
104     vpn; pt; exit;
105   }
106
107 }