# edwardtay/awesome-reverse-engineering architecture

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

- Interactive diagram: https://gitdiagram.com/edwardtay/awesome-reverse-engineering
- Repository: https://github.com/edwardtay/awesome-reverse-engineering

## Overview

This repository is a curated reverse-engineering tools and learning-resource catalog, published as a README and a searchable static website. Readers browse by analysis task or runtime, compare tools, and use the safety and learning guidance to choose what to try. The site generator’s excerpt shows how catalog data, hand-written FAQ/comparison copy, and icons feed generated pages. The README documents broader catalog capabilities; the sampled source does not show how every content section is assembled.

Main entry points: [`scripts/site.mjs`](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/site.mjs) (Site generation), [`scripts/build.mjs`](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/build.mjs) (Catalog generation), [`data.json`](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/data.json) (Tool catalog), [`data/meta.json`](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/data/meta.json) (Refresh metadata)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Catalog content"]
  node_catalog_data[("Tool catalog<br/>[data.json]")]
  node_refresh_data[("Refresh metadata<br/>[meta.json]")]
  node_categories["Tool categories<br/>[data.json]"]
end

subgraph group_publishing["Publishing"]
  node_build_catalog["Catalog generation<br/>[build.mjs]"]
  node_site_generator["Site generation<br/>[site.mjs]"]
  node_site_copy["FAQ and comparison<br/>[site-content.mjs]"]
  node_icons["Category icons<br/>[icons.mjs]"]
  node_website["Searchable website<br/>[site.mjs]"]
  node_published_list["Published list<br/>[README.md]"]
end

subgraph group_guidance["Reader guidance"]
  node_safety["Safety guidance<br/>[README.md]"]
  node_learning["Learning resources<br/>[README.md]"]
end

node_reader(("Reader"))
node_github(("GitHub metadata"))

node_reader -->|"browses"| node_website
node_reader -->|"reads"| node_published_list
node_site_generator -->|"reads"| node_catalog_data
node_site_generator -->|"reads"| node_refresh_data
node_site_generator -->|"imports"| node_site_copy
node_site_generator -->|"imports"| node_icons
node_site_generator -->|"generates"| node_website
node_build_catalog -->|"reads"| node_catalog_data
node_build_catalog -->|"reads"| node_refresh_data
node_build_catalog -->|"refreshes metadata"| node_github
node_build_catalog -->|"generates"| node_published_list
node_reader -->|"chooses by task"| node_categories
node_reader -->|"consults"| node_safety
node_reader -->|"follows"| node_learning

click node_catalog_data "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/data.json"
click node_refresh_data "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/data/meta.json"
click node_categories "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/data.json"
click node_safety "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/README.md"
click node_learning "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/README.md"
click node_build_catalog "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/build.mjs"
click node_site_generator "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/site.mjs"
click node_site_copy "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/site-content.mjs"
click node_icons "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/icons.mjs"
click node_website "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/site.mjs"
click node_published_list "https://github.com/edwardtay/awesome-reverse-engineering/blob/main/README.md"

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_catalog_data,node_refresh_data,node_categories toneBlue
class node_build_catalog,node_site_generator,node_site_copy,node_icons,node_website,node_published_list toneAmber
class node_safety,node_learning toneMint
class node_reader,node_github toneIndigo
```

## Components

### Catalog content

- [Tool catalog](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/data.json): `data.json`
- [Refresh metadata](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/data/meta.json): `data/meta.json`
- [Tool categories](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/data.json): `data.json`

### Publishing

- [Catalog generation](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/build.mjs): `scripts/build.mjs`
- [Site generation](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/site.mjs): `scripts/site.mjs`
- [FAQ and comparison](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/site-content.mjs): `scripts/site-content.mjs`
- [Category icons](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/icons.mjs): `scripts/icons.mjs`
- [Searchable website](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/scripts/site.mjs): `scripts/site.mjs`
- [Published list](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/README.md): `README.md`

### Reader guidance

- [Safety guidance](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/README.md): `README.md`
- [Learning resources](https://github.com/edwardtay/awesome-reverse-engineering/blob/main/README.md): `README.md`

### Other components

- **Reader**
- **GitHub metadata**

## Connections

- Reader → Searchable website: browses (evidence: `README.md`)
- Reader → Published list: reads (evidence: `README.md`)
- Site generation → Tool catalog: reads (evidence: `scripts/site.mjs`)
- Site generation → Refresh metadata: reads (evidence: `scripts/site.mjs`)
- Site generation → FAQ and comparison: imports (evidence: `scripts/site.mjs`)
- Site generation → Category icons: imports (evidence: `scripts/site.mjs`)
- Site generation → Searchable website: generates (evidence: `scripts/site.mjs`)
- Catalog generation → Tool catalog: reads (evidence: `scripts/build.mjs`)
- Catalog generation → Refresh metadata: reads (evidence: `scripts/build.mjs`)
- Catalog generation → GitHub metadata: refreshes metadata (evidence: `scripts/build.mjs`)
- Catalog generation → Published list: generates (evidence: `scripts/build.mjs`)
- Reader → Tool categories: chooses by task (evidence: `README.md`)
- Reader → Safety guidance: consults (evidence: `README.md`)
- Reader → Learning resources: follows (evidence: `README.md`)
