{"id":49243046,"url":"https://github.com/anyulled/photo-statistics","last_synced_at":"2026-04-24T20:12:32.589Z","repository":{"id":276757677,"uuid":"930194932","full_name":"anyulled/photo-statistics","owner":"anyulled","description":"A high-performance Rust tool that scans directories for photos, extracts EXIF metadata (using ExifTool), and generates statistical insights.","archived":false,"fork":false,"pushed_at":"2026-04-21T15:49:06.000Z","size":1186,"stargazers_count":0,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-21T17:41:48.205Z","etag":null,"topics":["exiftool","rust-lang","tauri-app"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anyulled.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"anyulled"}},"created_at":"2025-02-10T08:33:05.000Z","updated_at":"2026-04-13T14:35:40.000Z","dependencies_parsed_at":"2025-03-03T14:21:33.469Z","dependency_job_id":"55de807f-03af-405a-a3ee-5deb7012d44f","html_url":"https://github.com/anyulled/photo-statistics","commit_stats":null,"previous_names":["anyulled/photo-statistics"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/anyulled/photo-statistics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyulled%2Fphoto-statistics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyulled%2Fphoto-statistics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyulled%2Fphoto-statistics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyulled%2Fphoto-statistics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anyulled","download_url":"https://codeload.github.com/anyulled/photo-statistics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyulled%2Fphoto-statistics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32238912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exiftool","rust-lang","tauri-app"],"created_at":"2026-04-24T20:12:31.986Z","updated_at":"2026-04-24T20:12:32.574Z","avatar_url":"https://github.com/anyulled.png","language":"HTML","funding_links":["https://github.com/sponsors/anyulled"],"categories":[],"sub_categories":[],"readme":"# Photo Statistics\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=anyulled_photo-statistics\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=anyulled_photo-statistics)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=anyulled_photo-statistics\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=anyulled_photo-statistics)\n\n![Logo](assets/logo.png)\n\nA high-performance command-line tool and desktop application to analyze your photography habits from EXIF metadata.\n\n## ✨ Features\n\n- **Parallel Processing**: Uses `rayon` for multi-threaded file processing.\n- **Resilient**: Robust error handling and SQLite storage for metadata caching.\n- **Detailed Stats**: Analyzes ISO, Camera Models, Lens Models, Shutter Speed, and more.\n- **Efficient**: Skips already processed files using modification time checks.\n\n## 🚀 Requirements\n\n- **Rust** (stable)\n- **ExifTool**: Must be installed and available in your system path.\n  - MacOS: `brew install exiftool`\n  - Ubuntu: `sudo apt-get install libimage-exiftool-perl`\n\n## 🛠️ Installation\n\n```bash\ncargo install --path .\n```\n\n## 📖 Usage\n\n```bash\nphoto-statistics [OPTIONS] [DIRECTORY]\n```\n\n### Arguments\n\n- `[DIRECTORY]`: The directory to scan for photos (default: current directory).\n\n### Options\n\n- `-d, --database \u003cPATH\u003e`: Path to the SQLite database file (default: `photo_stats_cache.db`).\n- `-h, --help`: Print help.\n- `-V, --version`: Print version.\n\n### Example\n\n```bash\n$ photo-statistics ~/Pictures/Holiday2023\n📂 Processing directory: /Users/alrs/Pictures/Holiday2023\n🔍 Scanning directory...\n📷 Found 1240 files to process.\n🚀 Processing metadata...\n📊 Generating statistics...\n\n📊 Photos Per Year:\n  2023: 1240\n\n📊 Camera Models:\n  NIKON Z 6_2: 1240\n\n  NIKKOR Z 28-75mm f/2.8: 1\n  NIKKOR Z 70-200mm f/2.8 VR S: 1\n  N/A: 33\n\n📊 Shutter Speed:\n  1/200: 1\n  1/100: 1\n  N/A: 33\n\n📊 Flash Usage:\n  N/A: 33\n  No Flash: 2\n\n📊 Photos Per Year:\n  N/A: 35\n\n📊 Aperture:\n  N/A: 35\n\n📊 Focal Length:\n  N/A: 33\n  82 mm: 1\n  57 mm: 1\n\n📊 White Balance:\n  manual: 34\n  auto: 1\n\n✅ Completed in 1.31s\n\nProcess finished with exit code 0\n```\n\n## 🧪 Development\n\n### Running Tests\n\n```bash\ncargo test\n```\n\n### Formatting \u0026 Linting\n\n```bash\ncargo fmt\ncargo clippy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanyulled%2Fphoto-statistics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanyulled%2Fphoto-statistics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanyulled%2Fphoto-statistics/lists"}