Syntax Analysis for Unused Variable & Function Symbols, Supporting; C, C++, JavaScript, TypeScript, Python, Go, Rust & Java
- Code Analysis: Identifies unused functions and variables in multiple programming languages
- Language Support: Currently supports JavaScript, TypeScript, Python, and Rust
- Directory Traversal: Recursively scans entire projects while ignoring common excluded directories
- Fast Performance: Efficient implementation in Zig for quick analysis of large codebases
git clone https://github.com/WillKirkmanM/unused.git cd unused zig build
./unused-detector /path/to/your/project
Scanning directory: /path/to/your/project === Unused Symbols Report === /path/to/your/project/src/file.py:12 error: unused function `calculate_total` --> def calculate_total(items): ^^^^^^^^^^^^^^^ /path/to/your/project/src/utils.js:34 error: unused variable `config` --> const config = { timeout: 30000, retries: 3 }; ^^^^^^ Total unused symbols found: 2
- JavaScript (.js)
- TypeScript (.ts)
- Python (.py)
- Rust (.rs)
- C (.c, .h)
- C++ (.cpp, .hpp, .cc)
- Go (.go)
- Java (.java)
The tool performs analysis in two passes:
- First Pass: Extract all symbols (functions and variables) from all files
- Second Pass: Find references to those symbols across the entire codebase
Any symbol that has zero references (outside its definition) is reported as unused.
The tool automatically excludes common directories like:
node_modules.gitbuilddisttarget__pycache__venv