# yzyf1312/rust-build-tool architecture

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

- Interactive diagram: https://gitdiagram.com/yzyf1312/rust-build-tool
- Repository: https://github.com/yzyf1312/rust-build-tool

## Overview

Rust Build Tool is a command-line utility for producing optimized Rust executables and running optional quality checks or unused-dependency removal. Its main workflow dispatches build options, validates prerequisites, optionally runs checks and cleanup, builds for the selected target, optionally compresses the executable, and reports its size and path. The separate depcheck workflow scans dependencies, asks for confirmation, and removes selected entries. The graph follows the sampled CLI, build, and dependency-check source; README capabilities without inspected implementation are represented only where their invoking code is explicit.

Main entry points: [`src/main.rs`](https://github.com/yzyf1312/rust-build-tool/blob/master/src/main.rs) (CLI dispatch), [`src/build_system.rs`](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs) (Build orchestration), [`src/dependency_checker.rs`](https://github.com/yzyf1312/rust-build-tool/blob/master/src/dependency_checker.rs) (Unused dependency scan), [`src/tool_checker.rs`](https://github.com/yzyf1312/rust-build-tool/blob/master/src/tool_checker.rs) (Tool checks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["Command workflows"]
  node_cli["CLI dispatch<br/>[main.rs]"]
end

subgraph group_build["Optimized builds"]
  node_buildconfig["Build configuration<br/>[build_system.rs]"]
  node_preflight["Prerequisite validation<br/>[build_system.rs]"]
  node_buildrun["Build orchestration<br/>[build_system.rs]"]
  node_cleanup["Clean output<br/>[build_system.rs]"]
  node_cargo_build["Optimized compilation<br/>[build_system.rs]"]
  node_artifact["Artifact discovery<br/>[build_system.rs]"]
  node_compression["UPX compression<br/>[build_system.rs]"]
  node_result["Build result report<br/>[build_system.rs]"]
end

subgraph group_quality["Quality and dependencies"]
  node_clippy["Clippy checks<br/>[build_system.rs]"]
  node_deny["Dependency audits<br/>[build_system.rs]"]
  node_depcheck["Unused dependency scan"]
  node_dep_parse["Scan output parser"]
  node_dep_removal["Dependency removal"]
  node_confirmation["Removal confirmation<br/>[util.rs]"]
end

subgraph group_environment["External tools"]
  node_toolcheck["Tool checks<br/>[tool_checker.rs]"]
  node_cargo["Cargo"]
  node_nightly["Nightly Rust"]
  node_udeps["cargo-udeps"]
  node_upx["UPX"]
  node_manifest["Cargo.toml<br/>[Cargo.toml]"]
end

node_user(("User"))

node_user -->|"invokes"| node_cli
node_cli -->|"configures build"| node_buildconfig
node_cli -->|"validates build"| node_preflight
node_cli -->|"runs build"| node_buildrun
node_cli -->|"runs checks"| node_clippy
node_cli -->|"starts scan"| node_depcheck
node_cli -->|"runs audits"| node_deny
node_buildconfig -->|"creates validated build"| node_preflight
node_preflight -->|"checks prerequisites"| node_toolcheck
node_preflight -.->|"checks LZMA support"| node_upx
node_buildrun -->|"cleans optionally"| node_cleanup
node_buildrun -->|"builds"| node_cargo_build
node_buildrun -.->|"compresses optionally"| node_compression
node_buildrun -->|"reports result"| node_result
node_cleanup -->|"runs clean"| node_cargo
node_cargo_build -->|"runs release build"| node_cargo
node_cargo_build -->|"emits JSON stream"| node_artifact
node_artifact -->|"provides executable path"| node_result
node_compression -.->|"compresses executable"| node_upx
node_result -->|"reads file metadata"| node_artifact
node_clippy -->|"runs clippy"| node_cargo
node_deny -->|"runs deny check"| node_cargo
node_depcheck -->|"checks availability"| node_toolcheck
node_depcheck -->|"scans dependencies"| node_udeps
node_udeps -->|"returns output"| node_dep_parse
node_depcheck -->|"requests approval"| node_confirmation
node_confirmation -->|"requests response"| node_user
node_depcheck -->|"removes approved items"| node_dep_removal
node_dep_removal -->|"reads dependency sections"| node_manifest
node_dep_removal -->|"runs cargo remove"| node_cargo
node_toolcheck -->|"checks command"| node_cargo
node_toolcheck -->|"checks installation"| node_nightly

click node_cli "https://github.com/yzyf1312/rust-build-tool/blob/master/src/main.rs"
click node_buildconfig "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_preflight "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_buildrun "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_cleanup "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_cargo_build "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_artifact "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_compression "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_result "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_clippy "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_deny "https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs"
click node_depcheck "https://github.com/yzyf1312/rust-build-tool/blob/master/src/dependency_checker.rs"
click node_dep_parse "https://github.com/yzyf1312/rust-build-tool/blob/master/src/dependency_checker.rs"
click node_dep_removal "https://github.com/yzyf1312/rust-build-tool/blob/master/src/dependency_checker.rs"
click node_confirmation "https://github.com/yzyf1312/rust-build-tool/blob/master/src/util.rs"
click node_toolcheck "https://github.com/yzyf1312/rust-build-tool/blob/master/src/tool_checker.rs"
click node_manifest "https://github.com/yzyf1312/rust-build-tool/blob/master/Cargo.toml"

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_cli,node_user toneBlue
class node_buildconfig,node_preflight,node_buildrun,node_cleanup,node_cargo_build,node_artifact,node_compression,node_result toneAmber
class node_clippy,node_deny,node_depcheck,node_dep_parse,node_dep_removal,node_confirmation toneMint
class node_toolcheck,node_cargo,node_nightly,node_udeps,node_upx,node_manifest toneRose
```

## Components

### Command workflows

- [CLI dispatch](https://github.com/yzyf1312/rust-build-tool/blob/master/src/main.rs): `src/main.rs`

### Optimized builds

- [Build configuration](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [Prerequisite validation](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [Build orchestration](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [Clean output](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [Optimized compilation](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [Artifact discovery](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [UPX compression](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [Build result report](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`

### Quality and dependencies

- [Clippy checks](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [Dependency audits](https://github.com/yzyf1312/rust-build-tool/blob/master/src/build_system.rs): `src/build_system.rs`
- [Unused dependency scan](https://github.com/yzyf1312/rust-build-tool/blob/master/src/dependency_checker.rs): `src/dependency_checker.rs`
- [Scan output parser](https://github.com/yzyf1312/rust-build-tool/blob/master/src/dependency_checker.rs): `src/dependency_checker.rs`
- [Dependency removal](https://github.com/yzyf1312/rust-build-tool/blob/master/src/dependency_checker.rs): `src/dependency_checker.rs`
- [Removal confirmation](https://github.com/yzyf1312/rust-build-tool/blob/master/src/util.rs): `src/util.rs`

### External tools

- [Tool checks](https://github.com/yzyf1312/rust-build-tool/blob/master/src/tool_checker.rs): `src/tool_checker.rs`
- **Cargo**
- **Nightly Rust**
- **cargo-udeps**
- **UPX**
- [Cargo.toml](https://github.com/yzyf1312/rust-build-tool/blob/master/Cargo.toml): `Cargo.toml`

### Other components

- **User**

## Connections

- User → CLI dispatch: invokes
- CLI dispatch → Build configuration: configures build
- CLI dispatch → Prerequisite validation: validates build
- CLI dispatch → Build orchestration: runs build
- CLI dispatch → Clippy checks: runs checks
- CLI dispatch → Unused dependency scan: starts scan
- CLI dispatch → Dependency audits: runs audits
- Build configuration → Prerequisite validation: creates validated build
- Prerequisite validation → Tool checks: checks prerequisites
- Prerequisite validation → UPX: checks LZMA support
- Build orchestration → Clean output: cleans optionally
- Build orchestration → Optimized compilation: builds
- Build orchestration → UPX compression: compresses optionally
- Build orchestration → Build result report: reports result
- Clean output → Cargo: runs clean
- Optimized compilation → Cargo: runs release build
- Optimized compilation → Artifact discovery: emits JSON stream
- Artifact discovery → Build result report: provides executable path
- UPX compression → UPX: compresses executable
- Build result report → Artifact discovery: reads file metadata
- Clippy checks → Cargo: runs clippy
- Dependency audits → Cargo: runs deny check
- Unused dependency scan → Tool checks: checks availability
- Unused dependency scan → cargo-udeps: scans dependencies
- cargo-udeps → Scan output parser: returns output
- Unused dependency scan → Removal confirmation: requests approval
- Removal confirmation → User: requests response
- Unused dependency scan → Dependency removal: removes approved items
- Dependency removal → Cargo.toml: reads dependency sections
- Dependency removal → Cargo: runs cargo remove
- Tool checks → Cargo: checks command
- Tool checks → Nightly Rust: checks installation
