# tsukini22/libutils architecture

> Architecture diagram of the GitHub repository tsukini22/libutils, 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/tsukini22/libutils
- Repository: https://github.com/tsukini22/libutils

## Overview

Utils is a reusable C++ utility library rather than a single end-user application. Its broad runtime capabilities include command-line parsing, networking and message handling, security, algorithms, process facilities, and general-purpose types and math. A typical user calls a library API and receives parsed arguments, network payloads, or utility computations. The sampled code confirms argument parsing, client/server socket use, and EETP encoding/encryption; other branches are represented from the tree and README, without assuming their internal wiring.

Main entry points: [`include/utils/network/Client.hpp`](https://github.com/tsukini22/libutils/blob/main/include/utils/network/Client.hpp) (Network client), [`include/utils/network/Server.hpp`](https://github.com/tsukini22/libutils/blob/main/include/utils/network/Server.hpp) (Network server), [`include/utils/manip/smanip/parser/EETPParser.hpp`](https://github.com/tsukini22/libutils/blob/main/include/utils/manip/smanip/parser/EETPParser.hpp) (EETP parser), [`include/utils/network/socket/Socket.hpp`](https://github.com/tsukini22/libutils/blob/main/include/utils/network/socket/Socket.hpp) (Socket layer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User Interfaces"]
  node_argparser["Argument parser<br/>[ArgParser.hpp]"]
  node_cli["CLI helpers<br/>[Cli.hpp]"]
end

subgraph group_communications["Communication"]
  node_client["Network client<br/>[Client.hpp]"]
  node_server["Network server<br/>[Server.hpp]"]
  node_socket["Socket layer<br/>[Socket.hpp]"]
  node_networktypes["Network types<br/>[NetworkType.hpp]"]
  node_eetp["EETP parser<br/>[EETPParser.hpp]"]
end

subgraph group_security["Security and Formatting"]
  node_crypto["Encryption keys<br/>[AESKey.hpp]"]
  node_codec["Codec utilities<br/>[Codec.hpp]"]
  node_format["Formatting tools<br/>[format.hpp]"]
end

subgraph group_compute["Algorithms and Types"]
  node_sos["S.O.S. algorithms<br/>[sos.hpp]"]
  node_c2dmp["C2DMP-HSM algorithm<br/>[c2dmp-hsm.hpp]"]
  node_math["Math and geometry<br/>[MathType.hpp]"]
  node_containers["Vectors and matrices<br/>[Vector.hpp]"]
end

subgraph group_runtime["Runtime Support"]
  node_pool["Worker pool<br/>[Cluster.hpp]"]
  node_encapsulation["Process facilities<br/>[Process.hpp]"]
  node_scheduler["Scheduler<br/>[Scheduler.hpp]"]
  node_observer["Observer utilities<br/>[Observer.hpp]"]
  node_exceptions["Exception system<br/>[IException.hpp]"]
  node_system["System utilities<br/>[IdHandler.hpp]"]
end

node_users(("Library users"))

node_users -->|"parse arguments"| node_argparser
node_users -->|"use CLI helpers"| node_cli
node_users -->|"send and receive"| node_client
node_users -->|"serve payloads"| node_server
node_users -->|"invoke algorithms"| node_sos
node_users -->|"invoke algorithm"| node_c2dmp
node_client -->|"uses socket"| node_socket
node_server -->|"accepts and reads"| node_socket
node_client -->|"exchanges payloads"| node_networktypes
node_server -->|"buffers payloads"| node_networktypes
node_eetp -->|"encrypts and decrypts"| node_crypto
node_eetp -->|"encodes and decodes"| node_codec

click node_argparser "https://github.com/tsukini22/libutils/blob/main/include/utils/arguments/ArgParser.hpp"
click node_cli "https://github.com/tsukini22/libutils/blob/main/include/utils/cli/Cli.hpp"
click node_client "https://github.com/tsukini22/libutils/blob/main/include/utils/network/Client.hpp"
click node_server "https://github.com/tsukini22/libutils/blob/main/include/utils/network/Server.hpp"
click node_socket "https://github.com/tsukini22/libutils/blob/main/include/utils/network/socket/Socket.hpp"
click node_networktypes "https://github.com/tsukini22/libutils/blob/main/include/utils/network/NetworkType.hpp"
click node_eetp "https://github.com/tsukini22/libutils/blob/main/include/utils/manip/smanip/parser/EETPParser.hpp"
click node_crypto "https://github.com/tsukini22/libutils/blob/main/include/utils/security/encryption/AESKey.hpp"
click node_codec "https://github.com/tsukini22/libutils/blob/main/include/utils/manip/smanip/codec/Codec.hpp"
click node_format "https://github.com/tsukini22/libutils/blob/main/include/utils/manip/smanip/format.hpp"
click node_sos "https://github.com/tsukini22/libutils/blob/main/include/utils/algorithms/sos/sos.hpp"
click node_c2dmp "https://github.com/tsukini22/libutils/blob/main/include/utils/algorithms/c2dmp-hsm/c2dmp-hsm.hpp"
click node_math "https://github.com/tsukini22/libutils/blob/main/include/utils/math/MathType.hpp"
click node_containers "https://github.com/tsukini22/libutils/blob/main/include/utils/type/vector/Vector.hpp"
click node_pool "https://github.com/tsukini22/libutils/blob/main/include/utils/pool/Cluster.hpp"
click node_encapsulation "https://github.com/tsukini22/libutils/blob/main/include/utils/encapsulation/Process.hpp"
click node_scheduler "https://github.com/tsukini22/libutils/blob/main/include/utils/system/Scheduler.hpp"
click node_observer "https://github.com/tsukini22/libutils/blob/main/include/utils/security/observer/Observer.hpp"
click node_exceptions "https://github.com/tsukini22/libutils/blob/main/include/utils/exception/IException.hpp"
click node_system "https://github.com/tsukini22/libutils/blob/main/include/utils/system/IdHandler.hpp"

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_argparser,node_cli,node_users toneBlue
class node_client,node_server,node_socket,node_networktypes,node_eetp toneAmber
class node_crypto,node_codec,node_format toneMint
class node_sos,node_c2dmp,node_math,node_containers toneRose
class node_pool,node_encapsulation,node_scheduler,node_observer,node_exceptions,node_system toneIndigo
```

## Components

### User Interfaces

- [Argument parser](https://github.com/tsukini22/libutils/blob/main/include/utils/arguments/ArgParser.hpp): `include/utils/arguments/ArgParser.hpp`
- [CLI helpers](https://github.com/tsukini22/libutils/blob/main/include/utils/cli/Cli.hpp): `include/utils/cli/Cli.hpp`

### Communication

- [Network client](https://github.com/tsukini22/libutils/blob/main/include/utils/network/Client.hpp): `include/utils/network/Client.hpp`
- [Network server](https://github.com/tsukini22/libutils/blob/main/include/utils/network/Server.hpp): `include/utils/network/Server.hpp`
- [Socket layer](https://github.com/tsukini22/libutils/blob/main/include/utils/network/socket/Socket.hpp): `include/utils/network/socket/Socket.hpp`
- [Network types](https://github.com/tsukini22/libutils/blob/main/include/utils/network/NetworkType.hpp): `include/utils/network/NetworkType.hpp`
- [EETP parser](https://github.com/tsukini22/libutils/blob/main/include/utils/manip/smanip/parser/EETPParser.hpp): `include/utils/manip/smanip/parser/EETPParser.hpp`

### Security and Formatting

- [Encryption keys](https://github.com/tsukini22/libutils/blob/main/include/utils/security/encryption/AESKey.hpp): `include/utils/security/encryption/AESKey.hpp`
- [Codec utilities](https://github.com/tsukini22/libutils/blob/main/include/utils/manip/smanip/codec/Codec.hpp): `include/utils/manip/smanip/codec/Codec.hpp`
- [Formatting tools](https://github.com/tsukini22/libutils/blob/main/include/utils/manip/smanip/format.hpp): `include/utils/manip/smanip/format.hpp`

### Algorithms and Types

- [S.O.S. algorithms](https://github.com/tsukini22/libutils/blob/main/include/utils/algorithms/sos/sos.hpp): `include/utils/algorithms/sos/sos.hpp`
- [C2DMP-HSM algorithm](https://github.com/tsukini22/libutils/blob/main/include/utils/algorithms/c2dmp-hsm/c2dmp-hsm.hpp): `include/utils/algorithms/c2dmp-hsm/c2dmp-hsm.hpp`
- [Math and geometry](https://github.com/tsukini22/libutils/blob/main/include/utils/math/MathType.hpp): `include/utils/math/MathType.hpp`
- [Vectors and matrices](https://github.com/tsukini22/libutils/blob/main/include/utils/type/vector/Vector.hpp): `include/utils/type/vector/Vector.hpp`

### Runtime Support

- [Worker pool](https://github.com/tsukini22/libutils/blob/main/include/utils/pool/Cluster.hpp): `include/utils/pool/Cluster.hpp`
- [Process facilities](https://github.com/tsukini22/libutils/blob/main/include/utils/encapsulation/Process.hpp): `include/utils/encapsulation/Process.hpp`
- [Scheduler](https://github.com/tsukini22/libutils/blob/main/include/utils/system/Scheduler.hpp): `include/utils/system/Scheduler.hpp`
- [Observer utilities](https://github.com/tsukini22/libutils/blob/main/include/utils/security/observer/Observer.hpp): `include/utils/security/observer/Observer.hpp`
- [Exception system](https://github.com/tsukini22/libutils/blob/main/include/utils/exception/IException.hpp): `include/utils/exception/IException.hpp`
- [System utilities](https://github.com/tsukini22/libutils/blob/main/include/utils/system/IdHandler.hpp): `include/utils/system/IdHandler.hpp`

### Other components

- **Library users**

## Connections

- Library users → Argument parser: parse arguments
- Library users → CLI helpers: use CLI helpers
- Library users → Network client: send and receive
- Library users → Network server: serve payloads
- Library users → S.O.S. algorithms: invoke algorithms
- Library users → C2DMP-HSM algorithm: invoke algorithm
- Network client → Socket layer: uses socket
- Network server → Socket layer: accepts and reads
- Network client → Network types: exchanges payloads
- Network server → Network types: buffers payloads
- EETP parser → Encryption keys: encrypts and decrypts
- EETP parser → Codec utilities: encodes and decodes
