ExifTool is a mature, comprehensive Perl library and command-line application for reading, writing, and manipulating metadata across hundreds of file formats (images, audio, video, documents, archives, etc.). It supports all major metadata standards (EXIF, IPTC, XMP, GPS, ICC profiles, maker notes) and many proprietary formats. The architecture is modular: each file format has a dedicated Perl module under `lib/Image/ExifTool/` that implements a consistent interface for reading and writing metadata. The core `Image::ExifTool.pm` provides the API and CLI entry point. The codebase is exceptionally well-documented, with auto-generated HTML tag reference pages and extensive test coverage (over 100 test scripts with golden output files). It is actively maintained by a single author (Phil Harvey) with frequent releases. While the library is tightly coupled to the ExifTool framework, individual format modules follow clean patterns and could serve as reference implementations for metadata parsing. The repository also includes reusable utilities like `File/RandomAccess.pm` for buffered random file access and `Image/ExifTool/Geolocation.pm` for reverse geocoding.
Image MetaHub is a local-first Electron desktop application for organizing, browsing, and re-generating AI-generated images. It indexes media files in place (no uploads, no moving files) and extracts structured metadata — prompts, models, LoRAs, samplers, seeds, workflows — from 15+ generators including ComfyUI, A1111, InvokeAI, Midjourney, DALL-E, Fooocus, and Adobe Firefly (via C2PA/JUMBF/CBOR parsing). Beyond images it handles video, audio, and 3D model metadata. The app provides tagging, collections, automation rules, ratings, analytics, image comparison with pixel-level diffing, lineage/provenance tracking, and integration with local ComfyUI/A1111 instances for re-generation and upscaling. Pro features (visual search, clustering, batch export) are gated by an offline license system with a 7-day trial and Stripe billing.
ExifReader is a mature, well-maintained JavaScript library for extracting metadata from image files. It supports a wide range of image formats including JPEG, TIFF, PNG, HEIC, AVIF, WebP, GIF, and JPEG XL. The library parses EXIF, IPTC, XMP, ICC profiles, JFIF, MPF, Photoshop, and camera maker notes (Canon, Pentax). It is designed for both browser and Node.js environments, with a modular architecture that allows custom builds via tree-shaking and feature flags to reduce bundle size. The library exposes a promise-based API (`load()` and `loadView()`) and includes advanced features like adaptive partial file loading (`length: 'auto'`), tag filtering, thumbnail extraction, and comprehensive metadata range reporting. Security is a strong focus: bounds checks, value budgeting, and protection against crafted/malformed files are present throughout the parsers.