# dawn-winery/dwhbll architecture

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

- Interactive diagram: https://gitdiagram.com/dawn-winery/dwhbll
- Repository: https://github.com/dawn-winery/dwhbll

## Overview

dwhbll is a grab-bag C++ library, not one end-user application, so it has no single user-to-result workflow. Its modules provide independent capabilities: applications can parse CLI arguments, use networking and async primitives, process data formats, or call system utilities. The graph highlights those product areas and shared utility layers. The README documents additional capabilities whose internal wiring is not established by the sampled source; uncertain links are omitted.

Main entry points: [`src/dwhbll/network/socket_manager.cpp`](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/network/socket_manager.cpp) (Socket manager), [`src/dwhbll/network/dns/dns.cpp`](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/network/dns/dns.cpp) (DNS), [`src/dwhbll/subprocess/process.cpp`](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/subprocess/process.cpp) (Subprocess control), [`src/dwhbll/testing/runner.cpp`](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/testing/runner.cpp) (Test runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_net["Networking and async"]
  node_async["Coroutine runtime<br/>[reactor.h]"]
  node_socket["Socket manager<br/>[socket_manager.cpp]"]
  node_dns["DNS<br/>[dns.cpp]"]
  node_http["HTTP and server<br/>[http_server.h]"]
end

subgraph group_formats["Formats and languages"]
  node_json["JSON parser<br/>[json.cpp]"]
  node_lang["Language tools"]
  node_unicode["Unicode utilities<br/>[helpers.h]"]
  node_binary["Binary and PE files<br/>[pe.h]"]
end

subgraph group_systems["System utilities"]
  node_cli["CLI parsing<br/>[parser.cpp]"]
  node_subprocess["Subprocess control<br/>[process.cpp]"]
  node_files["File handling<br/>[binary_file.h]"]
  node_crypto["Cryptography<br/>[ihash.h]"]
end

subgraph group_dev["Developer support"]
  node_testing["Test framework<br/>[testing.h]"]
  node_harness["Test harnesses<br/>[harness.h]"]
  node_runner["Test runner<br/>[runner.cpp]"]
  node_logging["Logging and debug<br/>[logging.h]"]
end

subgraph group_foundation["Shared foundations"]
  node_stl["STL extensions"]
  node_collections["Collections and buffers"]
  node_concurrency["Concurrency primitives"]
  node_memory["Memory pool<br/>[pool.h]"]
end

node_app(("C++ application"))

node_app -->|"parses arguments"| node_cli
node_app -->|"parses or formats"| node_json
node_app -->|"uses coroutines"| node_async
node_dns -->|"receives packets"| node_socket
node_runner -->|"runs suites"| node_harness
node_subprocess -->|"logs cleanup"| node_logging
node_socket -->|"pools sockets"| node_memory

click node_async "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/concurrency/coroutine/reactor.h"
click node_socket "https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/network/socket_manager.cpp"
click node_dns "https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/network/dns/dns.cpp"
click node_http "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/network/http_server.h"
click node_json "https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/json/json.cpp"
click node_lang "https://github.com/dawn-winery/dwhbll/tree/master/include/dwhbll/lang"
click node_unicode "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/unicode/helpers.h"
click node_binary "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/files/executables/pe.h"
click node_cli "https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/cli/parser.cpp"
click node_subprocess "https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/subprocess/process.cpp"
click node_files "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/files/binary_file.h"
click node_crypto "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/cryptography/ihash.h"
click node_testing "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/testing/testing.h"
click node_harness "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/testing/harness.h"
click node_runner "https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/testing/runner.cpp"
click node_logging "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/console/logging.h"
click node_stl "https://github.com/dawn-winery/dwhbll/tree/master/include/dwhbll/stl_ext"
click node_collections "https://github.com/dawn-winery/dwhbll/tree/master/include/dwhbll/collections"
click node_concurrency "https://github.com/dawn-winery/dwhbll/tree/master/include/dwhbll/concurrency"
click node_memory "https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/memory/pool.h"

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_async,node_socket,node_dns,node_http toneBlue
class node_json,node_lang,node_unicode,node_binary toneAmber
class node_cli,node_subprocess,node_files,node_crypto toneMint
class node_testing,node_harness,node_runner,node_logging toneRose
class node_stl,node_collections,node_concurrency,node_memory,node_app toneIndigo
```

## Components

### Networking and async

- [Coroutine runtime](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/concurrency/coroutine/reactor.h): `include/dwhbll/concurrency/coroutine/reactor.h`
- [Socket manager](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/network/socket_manager.cpp): `src/dwhbll/network/socket_manager.cpp`
- [DNS](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/network/dns/dns.cpp): `src/dwhbll/network/dns/dns.cpp`
- [HTTP and server](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/network/http_server.h): `include/dwhbll/network/http_server.h`

### Formats and languages

- [JSON parser](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/json/json.cpp): `src/dwhbll/json/json.cpp`
- [Language tools](https://github.com/dawn-winery/dwhbll/tree/master/include/dwhbll/lang): `include/dwhbll/lang`
- [Unicode utilities](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/unicode/helpers.h): `include/dwhbll/unicode/helpers.h`
- [Binary and PE files](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/files/executables/pe.h): `include/dwhbll/files/executables/pe.h`

### System utilities

- [CLI parsing](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/cli/parser.cpp): `src/dwhbll/cli/parser.cpp`
- [Subprocess control](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/subprocess/process.cpp): `src/dwhbll/subprocess/process.cpp`
- [File handling](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/files/binary_file.h): `include/dwhbll/files/binary_file.h`
- [Cryptography](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/cryptography/ihash.h): `include/dwhbll/cryptography/ihash.h`

### Developer support

- [Test framework](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/testing/testing.h): `include/dwhbll/testing/testing.h`
- [Test harnesses](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/testing/harness.h): `include/dwhbll/testing/harness.h`
- [Test runner](https://github.com/dawn-winery/dwhbll/blob/master/src/dwhbll/testing/runner.cpp): `src/dwhbll/testing/runner.cpp`
- [Logging and debug](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/console/logging.h): `include/dwhbll/console/logging.h`

### Shared foundations

- [STL extensions](https://github.com/dawn-winery/dwhbll/tree/master/include/dwhbll/stl_ext): `include/dwhbll/stl_ext`
- [Collections and buffers](https://github.com/dawn-winery/dwhbll/tree/master/include/dwhbll/collections): `include/dwhbll/collections`
- [Concurrency primitives](https://github.com/dawn-winery/dwhbll/tree/master/include/dwhbll/concurrency): `include/dwhbll/concurrency`
- [Memory pool](https://github.com/dawn-winery/dwhbll/blob/master/include/dwhbll/memory/pool.h): `include/dwhbll/memory/pool.h`

### Other components

- **C++ application**

## Connections

- C++ application → CLI parsing: parses arguments
- C++ application → JSON parser: parses or formats
- C++ application → Coroutine runtime: uses coroutines
- DNS → Socket manager: receives packets
- Test runner → Test harnesses: runs suites
- Subprocess control → Logging and debug: logs cleanup
- Socket manager → Memory pool: pools sockets
