# mikemoore63/py-gorpmrustinfo architecture

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

- Interactive diagram: https://gitdiagram.com/mikemoore63/py-gorpmrustinfo
- Repository: https://github.com/mikemoore63/py-gorpmrustinfo

## Overview

pygorpmrustinfo consolidates RPM database inspection, Rust binary dependency auditing, and Go build/module metadata into one Python package backed by a shared Go extension. Users call the Python API or compatibility CLI; the facade marshals paths and JSON across the native boundary, while domain handlers read and parse the relevant inputs. Go sum files are parsed in Python. The README documents these capabilities, but sampled source does not show every external library’s internal behavior.

Main entry points: [`src/pygorpmrustinfo/pygorpmrustinfo.go`](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go) (Native extension), [`src/pygorpmrustinfo/__init__.py`](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/__init__.py) (Python API), [`src/pygorpmrustinfo/cli.py`](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/cli.py) (Compatibility CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["User interfaces"]
  node_python_api["Python API<br/>[__init__.py]"]
  node_cli["Compatibility CLI<br/>[cli.py]"]
  node_go_bridge["Go extension bridge<br/>[__init__.py]"]
  node_go_ext["Native extension<br/>[pygorpmrustinfo.go]"]
end

subgraph group_go["Go metadata"]
  node_go_build["Build info<br/>[pygorpmrustinfo.go]"]
  node_go_mod["Module parser<br/>[pygorpmrustinfo.go]"]
  node_go_sum["Sum parser<br/>[__init__.py]"]
end

subgraph group_rpm["RPM inspection"]
  node_rpm_handler["RPM reader<br/>[pygorpmrustinfo.go]"]
  node_rpm_db[("RPM database")]
end

subgraph group_rust["Rust auditing"]
  node_rust_handler["Rust auditor<br/>[pygorpmrustinfo.go]"]
end

node_user(("User"))
node_rust_binary["Rust binary"]
node_input_files["Metadata files"]
node_json_result["JSON result"]

node_user -->|"calls"| node_python_api
node_user -->|"runs"| node_cli
node_cli -->|"dispatches"| node_python_api
node_python_api -->|"wraps calls"| node_go_bridge
node_go_bridge -->|"calls exports"| node_go_ext
node_go_ext -->|"dispatches"| node_rpm_handler
node_go_ext -->|"dispatches"| node_rust_handler
node_go_ext -->|"dispatches"| node_go_build
node_go_ext -->|"dispatches"| node_go_mod
node_python_api -->|"parses"| node_go_sum
node_rpm_handler -->|"reads"| node_rpm_db
node_rust_handler -->|"audits"| node_rust_binary
node_go_build -->|"reads"| node_input_files
node_go_mod -->|"reads"| node_input_files
node_go_sum -->|"reads"| node_input_files
node_rpm_handler -->|"serializes"| node_json_result
node_rust_handler -->|"serializes"| node_json_result
node_go_build -->|"serializes"| node_json_result
node_go_mod -->|"serializes"| node_json_result
node_go_sum -->|"returns"| node_json_result

click node_python_api "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/__init__.py"
click node_cli "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/cli.py"
click node_go_bridge "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/__init__.py"
click node_go_ext "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go"
click node_go_build "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go"
click node_go_mod "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go"
click node_go_sum "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/__init__.py"
click node_rpm_handler "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go"
click node_rust_handler "https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go"

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_python_api,node_cli,node_go_bridge,node_go_ext,node_user toneBlue
class node_go_build,node_go_mod,node_go_sum toneAmber
class node_rpm_handler,node_rpm_db toneMint
class node_rust_handler toneRose
class node_rust_binary,node_input_files,node_json_result toneIndigo
```

## Components

### User interfaces

- [Python API](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/__init__.py): `src/pygorpmrustinfo/__init__.py`
- [Compatibility CLI](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/cli.py): `src/pygorpmrustinfo/cli.py`
- [Go extension bridge](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/__init__.py): `src/pygorpmrustinfo/__init__.py`
- [Native extension](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go): `src/pygorpmrustinfo/pygorpmrustinfo.go`

### Go metadata

- [Build info](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go): `src/pygorpmrustinfo/pygorpmrustinfo.go`
- [Module parser](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go): `src/pygorpmrustinfo/pygorpmrustinfo.go`
- [Sum parser](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/__init__.py): `src/pygorpmrustinfo/__init__.py`

### RPM inspection

- [RPM reader](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go): `src/pygorpmrustinfo/pygorpmrustinfo.go`
- **RPM database**

### Rust auditing

- [Rust auditor](https://github.com/mikemoore63/py-gorpmrustinfo/blob/main/src/pygorpmrustinfo/pygorpmrustinfo.go): `src/pygorpmrustinfo/pygorpmrustinfo.go`

### Other components

- **User**
- **Rust binary**
- **Metadata files**
- **JSON result**

## Connections

- User → Python API: calls (evidence: `README.md`)
- User → Compatibility CLI: runs (evidence: `README.md`)
- Compatibility CLI → Python API: dispatches (evidence: `src/pygorpmrustinfo/cli.py`)
- Python API → Go extension bridge: wraps calls (evidence: `src/pygorpmrustinfo/__init__.py`)
- Go extension bridge → Native extension: calls exports (evidence: `src/pygorpmrustinfo/__init__.py`)
- Native extension → RPM reader: dispatches (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Native extension → Rust auditor: dispatches (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Native extension → Build info: dispatches (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Native extension → Module parser: dispatches (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Python API → Sum parser: parses (evidence: `src/pygorpmrustinfo/__init__.py`)
- RPM reader → RPM database: reads (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Rust auditor → Rust binary: audits (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Build info → Metadata files: reads (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Module parser → Metadata files: reads (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Sum parser → Metadata files: reads (evidence: `src/pygorpmrustinfo/__init__.py`)
- RPM reader → JSON result: serializes (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Rust auditor → JSON result: serializes (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Build info → JSON result: serializes (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Module parser → JSON result: serializes (evidence: `src/pygorpmrustinfo/pygorpmrustinfo.go`)
- Sum parser → JSON result: returns (evidence: `src/pygorpmrustinfo/__init__.py`)
