exiftool-rs
A pure Rust reimplementation of ExifTool — read, write, and edit metadata in image, audio, video, and document files.
Features
- 41/41 JPEG test files produce identical tag names as Perl ExifTool v13.52
- 30+ format readers: JPEG, TIFF, PNG, CR2, PSD, WebP, HEIF/AVIF, MP4/MOV, AVI, MKV, PDF, WAV, FLAC, MP3, OGG, BMP, GIF, DNG, NEF, ARW, ORF, RAF, RW2, PEF, and more
- 15 format writers: JPEG, TIFF, PNG, WebP, PSD, PDF, MP4, MKV, AVI, WAV, FLAC, MP3, OGG, CR2, HEIF/AVIF
- 15 MakerNote manufacturers: Canon, Nikon, Sony, Pentax, Olympus, Panasonic, Fujifilm, Samsung, Sigma, Casio, Ricoh, Minolta, Apple, Google, FLIR
- Specialized parsers: GoPro GPMF, InfiRay thermal, FlashPix/OLE, Canon VRD, CIFF, MPF, MIE, and more
- No unsafe code, minimal dependencies
Library Usage
use ExifTool;
let et = new;
let tags = et.extract_info.unwrap;
for tag in &tags
CLI Usage
# Install
# Read metadata
# Short tag names
# JSON output
# Write tags
# Show groups
# Numeric values
CLI Options
| Option | Description |
|---|---|
-s |
Short tag names |
-s2 |
Very short (tag names only) |
-G |
Show group names |
-n |
Numeric output |
-j |
JSON output |
-b |
Binary output |
-ver |
Show version |
-TAG=VALUE |
Write tag |
-overwrite_original |
Overwrite without backup |
Testing
# Unit tests
# ISO-functional test (compares against Perl ExifTool)
Building
License
GPL-3.0-or-later (same as the original Perl ExifTool)
Authors
- Sylvain (@Le-Syl21) — Project creator
- Claude (Anthropic) — Implementation
Acknowledgements
Based on ExifTool by Phil Harvey. Tag tables and print conversions are generated from the ExifTool Perl source.