aboutsummaryrefslogtreecommitdiff
path: root/doc/structure.dot
diff options
context:
space:
mode:
Diffstat (limited to 'doc/structure.dot')
-rw-r--r--doc/structure.dot104
1 files changed, 104 insertions, 0 deletions
diff --git a/doc/structure.dot b/doc/structure.dot
new file mode 100644
index 000000000..d3b2c0cc9
--- /dev/null
+++ b/doc/structure.dot
@@ -0,0 +1,104 @@
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
9digraph dependencies {
10splines = 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;
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}