diff --git a/website/src/content/docs/architecture.md b/website/src/content/docs/architecture.md new file mode 100644 index 0000000..865d4a3 --- /dev/null +++ b/website/src/content/docs/architecture.md @@ -0,0 +1,65 @@ +**Here is automatically generated Architecture diagram** + +This should help getting started understanding various parts of `binsider` + +```mermaid +graph TB + User((User)) + ExternalSystems((External Systems)) + + subgraph "Binsider System" + CLI["Command Line Interface
(Rust)"] + + subgraph "Core Components" + Analyzer["Analyzer
(Rust)"] + ELFHandler["ELF Handler
(Rust)"] + StringExtractor["String Extractor
(Rust)"] + Tracer["Tracer
(Rust)"] + HexdumpViewer["Hexdump Viewer
(Rust)"] + end + + subgraph "TUI Components" + TUIManager["TUI Manager
(Rust/ratatui)"] + EventHandler["Event Handler
(Rust)"] + UIRenderer["UI Renderer
(Rust/ratatui)"] + StateManager["State Manager
(Rust)"] + end + + subgraph "Shared Components" + ErrorHandler["Error Handler
(Rust)"] + FileIO["File I/O
(Rust)"] + ArgParser["Argument Parser
(Rust/clap)"] + end + end + + User --> CLI + CLI --> Analyzer + Analyzer --> ELFHandler + Analyzer --> StringExtractor + Analyzer --> Tracer + Analyzer --> HexdumpViewer + CLI --> TUIManager + TUIManager --> EventHandler + TUIManager --> UIRenderer + TUIManager --> StateManager + CLI --> ArgParser + Analyzer --> FileIO + Tracer --> ExternalSystems + + ErrorHandler -.-> CLI + ErrorHandler -.-> Analyzer + ErrorHandler -.-> TUIManager + + classDef core fill:#2694ab,stroke:#1a6d7d,color:#ffffff + classDef tui fill:#1168bd,stroke:#0b4884,color:#ffffff + classDef shared fill:#6b8e23,stroke:#556b2f,color:#ffffff + classDef external fill:#999999,stroke:#666666,color:#ffffff + + class Analyzer,ELFHandler,StringExtractor,Tracer,HexdumpViewer core + class TUIManager,EventHandler,UIRenderer,StateManager tui + class ErrorHandler,FileIO,ArgParser shared + class ExternalSystems external + + %% Dotted lines for optional connections + linkStyle 13,14,15 stroke-dasharray: 5 5 +```