Skip to content

Commit 19bea73

Browse files
committed
docs(architecture): polish the diagram
1 parent f580d6e commit 19bea73

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

ARCHITECTURE.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Architecture
2+
3+
Here is an architectural diagram of `binsider` which should help in understanding the various components and how they interact with each other:
4+
5+
```mermaid
6+
graph TB
7+
User((User))
8+
ExternalSystems((External Systems))
9+
10+
subgraph "Binsider Architecture"
11+
CLI["Command Line Interface"]
12+
13+
subgraph "Core Components"
14+
Analyzer["Analyzer"]
15+
ELFHandler["ELF Handler"]
16+
StringExtractor["String Extractor"]
17+
Tracer["Tracer"]
18+
HexdumpViewer["Hexdump Viewer"]
19+
end
20+
21+
subgraph "TUI Components"
22+
TUIManager["TUI Manager<br/>(Ratatui)"]
23+
EventHandler["Event Handler"]
24+
UIRenderer["UI Renderer<br/>"]
25+
StateManager["State Manager"]
26+
end
27+
28+
subgraph "Shared Components"
29+
ErrorHandler["Error Handler"]
30+
FileIO["File I/O"]
31+
ArgParser["Argument Parser<br/>(clap)"]
32+
end
33+
end
34+
35+
User --> CLI
36+
CLI --> Analyzer
37+
Analyzer --> ELFHandler
38+
Analyzer --> StringExtractor
39+
Analyzer --> Tracer
40+
Analyzer --> HexdumpViewer
41+
CLI --> TUIManager
42+
TUIManager --> EventHandler
43+
TUIManager --> UIRenderer
44+
TUIManager --> StateManager
45+
CLI --> ArgParser
46+
Analyzer --> FileIO
47+
Tracer --> ExternalSystems
48+
49+
ErrorHandler -.-> CLI
50+
ErrorHandler -.-> Analyzer
51+
ErrorHandler -.-> TUIManager
52+
53+
classDef core fill:#2694ab,stroke:#1a6d7d,color:#ffffff
54+
classDef tui fill:#1168bd,stroke:#0b4884,color:#ffffff
55+
classDef shared fill:#6b8e23,stroke:#556b2f,color:#ffffff
56+
classDef external fill:#999999,stroke:#666666,color:#ffffff
57+
58+
class Analyzer,ELFHandler,StringExtractor,Tracer,HexdumpViewer core
59+
class TUIManager,EventHandler,UIRenderer,StateManager tui
60+
class ErrorHandler,FileIO,ArgParser shared
61+
class ExternalSystems external
62+
63+
%% Dotted lines for optional connections
64+
linkStyle 13,14,15 stroke-dasharray: 5 5
65+
```

0 commit comments

Comments
 (0)