tng.dot 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. // this is what we have...o
  10. digraph tng {
  11. // splines = true;
  12. compound=true;
  13. subgraph cluster0 {
  14. label="Our peer";
  15. style=dashed;
  16. color=black;
  17. subgraph cluster1 {
  18. style=solid;
  19. color=black;
  20. tcp;
  21. udp;
  22. others [style=dotted];
  23. label="Communicators";
  24. }
  25. subgraph cluster2 {
  26. style=solid;
  27. color=black;
  28. dht;
  29. fs;
  30. cadet;
  31. label="Applications";
  32. }
  33. cadet -> core [ltail=cluster2,label="Communicate with peers"];
  34. dht -> transport [ltail=cluster2,label="Suggest connection to peer"];
  35. core -> transport [label="Send/receive messages via secure channel"];
  36. transport -> tcp [lhead=cluster1,dir=both,label="Offer connectivity/channel to other peer"];
  37. udp -> nat [label="Get addresses"];
  38. tcp -> nat;
  39. }
  40. subgraph cluster3 {
  41. rank = sink;
  42. style=dashed;
  43. color=black;
  44. peer3;
  45. peer1;
  46. peer2;
  47. label="Other peers";
  48. }
  49. tcp -> peer1 [dir=both];
  50. udp -> peer2;
  51. transport->peer1 [style=invis];
  52. }