Expand description
§exiftool-rs
A pure Rust reimplementation of ExifTool for reading, writing, and editing metadata in image, audio, video, and document files.
194/194 test files (100%) produce identical tag names as Perl ExifTool v13.53. Over 11,600 tags verified across 55+ file formats.
§Quick Start
use exiftool_rs::ExifTool;
let et = ExifTool::new();
let tags = et.extract_info("photo.jpg").unwrap();
for tag in &tags {
println!("{}: {}", tag.name, tag.print_value);
}§One-liner
let info = exiftool_rs::image_info("photo.jpg").unwrap();
println!("Camera: {}", info.get("Model").unwrap_or(&String::new()));§Writing Tags
use exiftool_rs::ExifTool;
let mut et = ExifTool::new();
et.set_new_value("Artist", Some("John Doe"));
et.write_info("photo.jpg", "photo_out.jpg").unwrap();§Supported Formats (93 readers, 15 writers)
Images: JPEG, TIFF, PNG, WebP, PSD, BMP, GIF, HEIF/AVIF, ICO, XCF, BPG, MIFF, PGF, PPM, PCX, PICT, JXR, FLIF, MNG, Radiance HDR, OpenEXR, PSP, InDesign
Raw: CR2, CR3, CRW, CRM, NEF, DNG, ARW, ORF, RAF, RW2, PEF, SR2, X3F, IIQ, 3FR, ERF, MRW, SRW, Rawzor, KyoceraRaw
Video: MP4/MOV, AVI, MKV, MTS, MPEG, WTV, DV, FLV, SWF, MXF, ASF/WMV, Real
Audio: MP3, FLAC, WAV, OGG, AAC, AIFF, APE, MPC, WavPack, DSF, Audible, Opus
Documents: PDF, RTF, HTML, PostScript, DjVu, OpenDocument, TNEF, Font (TTF/OTF/WOFF)
Scientific: DICOM, MRC, FITS, XISF, DPX, LIF (Leica)
Archives: ZIP, 7Z, RAR, GZIP, ISO, Torrent
Other: EXE/ELF/Mach-O, LNK, VCard, ICS, JSON, PLIST, MIE, Lytro LFP, FLIR FPF, CaptureOne EIP, Palm PDB, PCAP
Timed metadata (-ee): freeGPS (dashcams), GoPro GPMF, Google CAMM, NMEA, Kenwood, DJI, Insta360
MakerNotes: Canon, Nikon, Sony, Pentax, Olympus, Panasonic, Fujifilm, Samsung, Sigma, Casio, Ricoh, Minolta, Apple, Google, FLIR, GE, GoPro
Re-exports§
pub use crate::error::Error;pub use crate::error::Result;pub use crate::exiftool::ExifTool;pub use crate::exiftool::ImageInfo;pub use crate::exiftool::Options;pub use crate::file_type::FileType;pub use crate::tag::Tag;pub use crate::tag::TagGroup;pub use crate::tag::TagId;pub use crate::value::Value;
Modules§
- composite
- Composite (derived/calculated) tags.
- config
- ExifTool configuration file parser (.ExifTool_config).
- error
- exiftool
- Core ExifTool struct and public API.
- file_
type - formats
- geolocation
- Geolocation reverse geocoding using ExifTool’s Geolocation.dat.
- i18n
- Internationalization support for tag descriptions.
- md5
- Minimal MD5 implementation (RFC 1321) for CurrentIPTCDigest.
- metadata
- tag
- tags
- value
- writer
Constants§
- VERSION
- Library version.
Functions§
- get_
file_ type - Detect the file type of the given file.
- image_
info - Convenience function: extract metadata from a file in one call.