# tjmers/builder architecture

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

- Interactive diagram: https://gitdiagram.com/tjmers/builder
- Repository: https://github.com/tjmers/builder

## Overview

Builder is a Rust backend framework for serving HTTP over platform-specific TCP sockets. The principal runtime path is the listener framing incoming bytes, the server parsing and routing each request to a registered handler, and response construction producing bytes for the listener to send. The graph also preserves the documented Linux/Windows socket implementations and the response-body helpers. Several listener/server internals are unsampled, so only relationships visible in excerpts, the source index, or README are shown; no storage or benchmark machinery is included.

Main entry points: [`src/tcp_listener.rs`](https://github.com/tjmers/builder/blob/main/src/tcp_listener.rs) (Listener API), [`src/server.rs`](https://github.com/tjmers/builder/blob/main/src/server.rs) (Server routing), [`src/http_response.rs`](https://github.com/tjmers/builder/blob/main/src/http_response.rs) (Response builder), [`src/tcp_listener/windows.rs`](https://github.com/tjmers/builder/blob/main/src/tcp_listener/windows.rs) (Windows sockets)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["HTTP Routing"]
  node_server["Server routing<br/>[server.rs]"]
  node_request["HTTP parser<br/>[http_request.rs]"]
end

subgraph group_transport["TCP Transport"]
  node_framer["Request framing<br/>[tcp_listener.rs]"]
  node_listener["Listener API<br/>[tcp_listener.rs]"]
  node_linux["Linux sockets<br/>[linux.rs]"]
  node_windows["Windows sockets<br/>[windows.rs]"]
end

subgraph group_responses["Response Content"]
  node_response["Response builder<br/>[http_response.rs]"]
  node_status["HTTP statuses"]
  node_text["Text payloads<br/>[text.rs]"]
  node_image["Image payloads<br/>[image.rs]"]
end

subgraph group_support["Runtime Support"]
  node_ip["Client address<br/>[ip_address.rs]"]
  node_logger["Logging<br/>[logger.rs]"]
end

node_developer(("Framework user"))

node_developer -.->|"registers routes"| node_server
node_server -->|"parses requests"| node_request
node_server -->|"builds responses"| node_response
node_server -->|"uses listener"| node_listener
node_listener -->|"frames requests"| node_framer
node_linux -->|"implements sockets"| node_listener
node_windows -->|"implements sockets"| node_listener
node_windows -->|"dispatches handler"| node_listener
node_response -->|"uses status codes"| node_status
node_response -->|"formats text"| node_text
node_response -->|"formats images"| node_image

click node_server "https://github.com/tjmers/builder/blob/main/src/server.rs"
click node_request "https://github.com/tjmers/builder/blob/main/src/http_request.rs"
click node_framer "https://github.com/tjmers/builder/blob/main/src/tcp_listener.rs"
click node_listener "https://github.com/tjmers/builder/blob/main/src/tcp_listener.rs"
click node_linux "https://github.com/tjmers/builder/blob/main/src/tcp_listener/linux.rs"
click node_windows "https://github.com/tjmers/builder/blob/main/src/tcp_listener/windows.rs"
click node_response "https://github.com/tjmers/builder/blob/main/src/http_response.rs"
click node_status "https://github.com/tjmers/builder/blob/main/src/data/http_response_status_codes.rs"
click node_text "https://github.com/tjmers/builder/blob/main/src/text.rs"
click node_image "https://github.com/tjmers/builder/blob/main/src/image.rs"
click node_ip "https://github.com/tjmers/builder/blob/main/src/ip_address.rs"
click node_logger "https://github.com/tjmers/builder/blob/main/src/logger.rs"

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_server,node_request,node_developer toneBlue
class node_framer,node_listener,node_linux,node_windows toneAmber
class node_response,node_status,node_text,node_image toneMint
class node_ip,node_logger toneRose
```

## Components

### HTTP Routing

- [Server routing](https://github.com/tjmers/builder/blob/main/src/server.rs): `src/server.rs`
- [HTTP parser](https://github.com/tjmers/builder/blob/main/src/http_request.rs): `src/http_request.rs`

### TCP Transport

- [Request framing](https://github.com/tjmers/builder/blob/main/src/tcp_listener.rs): `src/tcp_listener.rs`
- [Listener API](https://github.com/tjmers/builder/blob/main/src/tcp_listener.rs): `src/tcp_listener.rs`
- [Linux sockets](https://github.com/tjmers/builder/blob/main/src/tcp_listener/linux.rs): `src/tcp_listener/linux.rs`
- [Windows sockets](https://github.com/tjmers/builder/blob/main/src/tcp_listener/windows.rs): `src/tcp_listener/windows.rs`

### Response Content

- [Response builder](https://github.com/tjmers/builder/blob/main/src/http_response.rs): `src/http_response.rs`
- [HTTP statuses](https://github.com/tjmers/builder/blob/main/src/data/http_response_status_codes.rs): `src/data/http_response_status_codes.rs`
- [Text payloads](https://github.com/tjmers/builder/blob/main/src/text.rs): `src/text.rs`
- [Image payloads](https://github.com/tjmers/builder/blob/main/src/image.rs): `src/image.rs`

### Runtime Support

- [Client address](https://github.com/tjmers/builder/blob/main/src/ip_address.rs): `src/ip_address.rs`
- [Logging](https://github.com/tjmers/builder/blob/main/src/logger.rs): `src/logger.rs`

### Other components

- **Framework user**

## Connections

- Framework user → Server routing: registers routes
- Server routing → HTTP parser: parses requests (evidence: `src/server.rs`)
- Server routing → Response builder: builds responses (evidence: `src/server.rs`)
- Server routing → Listener API: uses listener (evidence: `src/server.rs`)
- Listener API → Request framing: frames requests (evidence: `src/tcp_listener.rs`)
- Linux sockets → Listener API: implements sockets (evidence: `README.md`)
- Windows sockets → Listener API: implements sockets (evidence: `README.md`)
- Windows sockets → Listener API: dispatches handler (evidence: `src/tcp_listener/windows.rs`)
- Response builder → HTTP statuses: uses status codes (evidence: `src/http_response.rs`)
- Response builder → Text payloads: formats text (evidence: `src/http_response.rs`)
- Response builder → Image payloads: formats images (evidence: `src/http_response.rs`)
