# freenelva/yris architecture

> Architecture diagram of the GitHub repository freenelva/yris, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/freenelva/yris
- Repository: https://github.com/freenelva/yris

## Overview

Yris is a Unix system-information CLI. Its current startup path runs initialization, while the implemented user-report routine constructs user details and prints them; the README also describes OS, memory, and network information, with corresponding domain modules present. The excerpts do not show main dispatching to those report routines, nor the implementations of the OS, memory, or network report functions, so those capabilities are shown without inferred runtime links.

Main entry points: [`src/yris.cpp`](https://github.com/freenelva/yris/blob/main/src/yris.cpp) (User report), [`include/memory.cpp`](https://github.com/freenelva/yris/blob/main/include/memory.cpp) (Memory details), [`include/network.cpp`](https://github.com/freenelva/yris/blob/main/include/network.cpp) (Network details), [`include/user.cpp`](https://github.com/freenelva/yris/blob/main/include/user.cpp) (User details)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI startup"]
  node_entry["Program entry<br/>[main.cpp]"]
  node_init["Yris init<br/>[yris.cpp]"]
end

subgraph group_reports["Information reports"]
  node_user_report["User report<br/>[yris.cpp]"]
end

subgraph group_sources["System data sources"]
  node_user_data["User details<br/>[user.cpp]"]
  node_os_info["OS details<br/>[system.cpp]"]
  node_memory_info["Memory details<br/>[memory.cpp]"]
  node_network_info["Network details<br/>[network.cpp]"]
end

node_operator(("CLI user"))
node_unix_account["Unix account APIs"]
node_unix_system["Unix system APIs"]
node_filesystem[("Root filesystem")]
node_ip_service["ifconfig.me"]
node_terminal["Terminal"]

node_entry -->|"initializes"| node_init
node_user_report -->|"constructs"| node_user_data
node_user_data -->|"reads account"| node_unix_account
node_user_report -->|"prints details"| node_terminal
node_os_info -->|"reads system data"| node_unix_system
node_memory_info -->|"reads RAM"| node_unix_system
node_memory_info -->|"reads capacity"| node_filesystem
node_network_info -->|"reads hostname"| node_unix_system
node_network_info -->|"requests public IP"| node_ip_service

click node_entry "https://github.com/freenelva/yris/blob/main/src/main.cpp"
click node_init "https://github.com/freenelva/yris/blob/main/src/yris.cpp"
click node_user_report "https://github.com/freenelva/yris/blob/main/src/yris.cpp"
click node_user_data "https://github.com/freenelva/yris/blob/main/include/user.cpp"
click node_os_info "https://github.com/freenelva/yris/blob/main/include/system.cpp"
click node_memory_info "https://github.com/freenelva/yris/blob/main/include/memory.cpp"
click node_network_info "https://github.com/freenelva/yris/blob/main/include/network.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_init,node_operator toneBlue
class node_user_report,node_filesystem toneAmber
class node_user_data,node_os_info,node_memory_info,node_network_info,node_unix_account,node_unix_system toneMint
class node_ip_service,node_terminal toneIndigo
```

## Components

### CLI startup

- [Program entry](https://github.com/freenelva/yris/blob/main/src/main.cpp): `src/main.cpp`
- [Yris init](https://github.com/freenelva/yris/blob/main/src/yris.cpp): `src/yris.cpp`

### Information reports

- [User report](https://github.com/freenelva/yris/blob/main/src/yris.cpp): `src/yris.cpp`

### System data sources

- [User details](https://github.com/freenelva/yris/blob/main/include/user.cpp): `include/user.cpp`
- [OS details](https://github.com/freenelva/yris/blob/main/include/system.cpp): `include/system.cpp`
- [Memory details](https://github.com/freenelva/yris/blob/main/include/memory.cpp): `include/memory.cpp`
- [Network details](https://github.com/freenelva/yris/blob/main/include/network.cpp): `include/network.cpp`

### Other components

- **CLI user**
- **Unix account APIs**
- **Unix system APIs**
- **Root filesystem**
- **ifconfig.me**
- **Terminal**

## Connections

- Program entry → Yris init: initializes (evidence: `src/main.cpp`)
- User report → User details: constructs (evidence: `src/yris.cpp`)
- User details → Unix account APIs: reads account (evidence: `include/user.cpp`)
- User report → Terminal: prints details (evidence: `src/yris.cpp`)
- OS details → Unix system APIs: reads system data (evidence: `include/system.cpp`)
- Memory details → Unix system APIs: reads RAM (evidence: `include/memory.cpp`)
- Memory details → Root filesystem: reads capacity (evidence: `include/memory.cpp`)
- Network details → Unix system APIs: reads hostname (evidence: `include/network.cpp`)
- Network details → ifconfig.me: requests public IP (evidence: `include/network.cpp`)
