https://github.com/anyulled/photo-statistics
A high-performance Rust tool that scans directories for photos, extracts EXIF metadata (using ExifTool), and generates statistical insights.
https://github.com/anyulled/photo-statistics
exiftool rust-lang tauri-app
Last synced: 3 months ago
JSON representation
A high-performance Rust tool that scans directories for photos, extracts EXIF metadata (using ExifTool), and generates statistical insights.
- Host: GitHub
- URL: https://github.com/anyulled/photo-statistics
- Owner: anyulled
- Created: 2025-02-10T08:33:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-21T15:49:06.000Z (3 months ago)
- Last Synced: 2026-04-21T17:41:48.205Z (3 months ago)
- Topics: exiftool, rust-lang, tauri-app
- Language: HTML
- Homepage:
- Size: 1.13 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# Photo Statistics
[](https://sonarcloud.io/summary/new_code?id=anyulled_photo-statistics)
[](https://sonarcloud.io/summary/new_code?id=anyulled_photo-statistics)

A high-performance command-line tool and desktop application to analyze your photography habits from EXIF metadata.
## โจ Features
- **Parallel Processing**: Uses `rayon` for multi-threaded file processing.
- **Resilient**: Robust error handling and SQLite storage for metadata caching.
- **Detailed Stats**: Analyzes ISO, Camera Models, Lens Models, Shutter Speed, and more.
- **Efficient**: Skips already processed files using modification time checks.
## ๐ Requirements
- **Rust** (stable)
- **ExifTool**: Must be installed and available in your system path.
- MacOS: `brew install exiftool`
- Ubuntu: `sudo apt-get install libimage-exiftool-perl`
## ๐ ๏ธ Installation
```bash
cargo install --path .
```
## ๐ Usage
```bash
photo-statistics [OPTIONS] [DIRECTORY]
```
### Arguments
- `[DIRECTORY]`: The directory to scan for photos (default: current directory).
### Options
- `-d, --database `: Path to the SQLite database file (default: `photo_stats_cache.db`).
- `-h, --help`: Print help.
- `-V, --version`: Print version.
### Example
```bash
$ photo-statistics ~/Pictures/Holiday2023
๐ Processing directory: /Users/alrs/Pictures/Holiday2023
๐ Scanning directory...
๐ท Found 1240 files to process.
๐ Processing metadata...
๐ Generating statistics...
๐ Photos Per Year:
2023: 1240
๐ Camera Models:
NIKON Z 6_2: 1240
NIKKOR Z 28-75mm f/2.8: 1
NIKKOR Z 70-200mm f/2.8 VR S: 1
N/A: 33
๐ Shutter Speed:
1/200: 1
1/100: 1
N/A: 33
๐ Flash Usage:
N/A: 33
No Flash: 2
๐ Photos Per Year:
N/A: 35
๐ Aperture:
N/A: 35
๐ Focal Length:
N/A: 33
82 mm: 1
57 mm: 1
๐ White Balance:
manual: 34
auto: 1
โ
Completed in 1.31s
Process finished with exit code 0
```
## ๐งช Development
### Running Tests
```bash
cargo test
```
### Formatting & Linting
```bash
cargo fmt
cargo clippy
```