# akashpriyadarshii/zcat architecture

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

## Overview

zcat is a streaming command-line cat replacement with GNU-compatible line options and a separate structured JSON mode. The README documents the main entry point, argument parser, core processing module, and platform I/O behavior; source excerpts were unavailable, so internal call wiring is limited to those documented relationships.

Main entry points: [`src/main.zig`](https://github.com/akashpriyadarshii/zcat/blob/main/src/main.zig) (Entry point), [`src/Cat.zig`](https://github.com/akashpriyadarshii/zcat/blob/main/src/Cat.zig) (Raw system I/O), [`src/Args.zig`](https://github.com/akashpriyadarshii/zcat/blob/main/src/Args.zig) (Argument parsing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI control"]
  node_main["Entry point<br/>[main.zig]"]
  node_args["Argument parsing<br/>[Args.zig]"]
end

subgraph group_processing["File processing"]
  node_cat["Cat processing<br/>[Cat.zig]"]
end

subgraph group_io["Platform I/O"]
  node_syscalls["Raw system I/O<br/>[Cat.zig]"]
end

node_user(("CLI user"))
node_input["Files and stdin"]
node_stdout(("Standard output"))
node_stderr(("Standard error"))

node_user -->|"invokes"| node_main
node_main -->|"parses arguments"| node_args
node_main -->|"dispatches processing"| node_cat
node_cat -->|"reads and writes"| node_syscalls
node_input -->|"supplies bytes"| node_syscalls
node_syscalls -->|"writes output"| node_stdout
node_main -->|"reports errors"| node_stderr

click node_main "https://github.com/akashpriyadarshii/zcat/blob/main/src/main.zig"
click node_args "https://github.com/akashpriyadarshii/zcat/blob/main/src/Args.zig"
click node_cat "https://github.com/akashpriyadarshii/zcat/blob/main/src/Cat.zig"
click node_syscalls "https://github.com/akashpriyadarshii/zcat/blob/main/src/Cat.zig"

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_main,node_args,node_user toneBlue
class node_cat toneAmber
class node_syscalls toneMint
class node_input,node_stdout,node_stderr toneIndigo
```

## Components

### CLI control

- [Entry point](https://github.com/akashpriyadarshii/zcat/blob/main/src/main.zig): `src/main.zig`
- [Argument parsing](https://github.com/akashpriyadarshii/zcat/blob/main/src/Args.zig): `src/Args.zig`

### File processing

- [Cat processing](https://github.com/akashpriyadarshii/zcat/blob/main/src/Cat.zig): `src/Cat.zig`

### Platform I/O

- [Raw system I/O](https://github.com/akashpriyadarshii/zcat/blob/main/src/Cat.zig): `src/Cat.zig`

### Other components

- **CLI user**
- **Files and stdin**
- **Standard output**
- **Standard error**

## Connections

- CLI user → Entry point: invokes
- Entry point → Argument parsing: parses arguments
- Entry point → Cat processing: dispatches processing
- Cat processing → Raw system I/O: reads and writes
- Files and stdin → Raw system I/O: supplies bytes
- Raw system I/O → Standard output: writes output
- Entry point → Standard error: reports errors
