1
0
mirror of https://github.com/coturn/coturn.git synced 2025-08-13 01:37:09 +02:00
coturn/docs/Developer.md
Gustavo Garcia ce56a78a7a
Add modules diagram to developer doc (#1685)
Add basic diagram with modules of coturn inside Developer.md.

I also wanted to move the existing Flow chart to mermaid so that our doc
doesn't depend on external tools but i couldn't find the time to do it
properly (horizontal arrows are hard to represent with mermaid) so i
postponed that part.

This is the result of the mermaid diagram: 
![Screenshot 2025-05-26 at 12 54
29](https://github.com/user-attachments/assets/860bd56b-cb4a-462c-b931-a82c9d52fdc9)
2025-05-26 13:57:13 +02:00

71 lines
1.4 KiB
Markdown

## Developer
### Modules
The coturn repository includes different applications and libraries. The next diagram represents those modules and their dependencies:
```mermaid
---
config:
class:
hideEmptyMembersBox: true
---
classDiagram
note for relay "turn server process"
relay --> server
note for stunclient "STUN test app"
stunclient --> client
note for uclient "TURN test/stress app"
uclient --> common
uclient --> client
note for natdiscovery "discover NAT test app"
natdiscovery --> common
natdiscovery --> client
note for peer "fake receiver"
peer --> client
note for oauth "create&validate tokens"
oauth --> common
oauth --> client
note for rfc5769_check "run vector tests"
rfc5769_check --> common
note for client_cpp "C++ wrapper lib"
client_cpp --> client
relay --> common
namespace test_apps {
class stunclient {
}
class uclient {
}
class natdiscovery {
}
class peer {
}
class oauth {
}
class rfc5769_check {
}
}
```
### Flow chart
![FlowChart](drawio/FlowChart.svg)
### Edit flow chart
- Use [drawio](https://app.diagrams.net/) to edit.
1. Open [drawio](https://app.diagrams.net/) in brower
2. Menu → File → Open from ... → Device:
Select [FlowChart.html](drawio/FlowChart.html)
3. Edit flow chart
4. Export to svg:
Menu → File → Export as... → SVG...