-pogen
[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 [style=dashed];
17   fs -> ats [style=dashed];
18   fs -> block [stlye=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 [style=dashed];
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 [stlye=dashed,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   core -> dv [style=invis]; // force dv below core
73   peerinfo -> hello;
74   fragmentation [shape=diamond];
75   hello [shape=diamond];
76   nat [shape=diamond];
77   tun [shape=diamond];
78
79   subgraph STREAM {
80     stream; lockmanager;
81   }
82   subgraph DHT {
83     dht; nse; datacache; block;
84   }
85   subgraph MESH {
86     mesh; regex;
87   }
88   subgraph TRANSPORT {
89     transport; dv; peerinfo; hello; nat; ats;
90   }
91   subgraph CORE {
92     core; hostlist; topology;
93   }
94   subgraph FS {
95     fs; datastore;
96   }
97   subgraph GNS {
98     gns; namestore;
99   }
100   subgraph VPN {
101     vpn; pt; exit;
102   }
103
104 }