Skip to main content

Crate exiftool_rs

Crate exiftool_rs 

Source
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.52. 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 (55+ readers, 15 writers)

Images: JPEG, TIFF, PNG, WebP, PSD, BMP, GIF, HEIF/AVIF, ICO, XCF, BPG, MIFF, PGF

Raw: CR2, CR3, CRW, NEF, DNG, ARW, ORF, RAF, RW2, PEF, SR2, X3F, IIQ, 3FR, ERF, MRW

Video: MP4/MOV, AVI, MKV, MTS, WTV, DV, FLV, SWF, MXF

Audio: MP3, FLAC, WAV, OGG, AAC, AIFF, APE, MPC, WavPack, DSF, Audible

Documents: PDF, RTF, HTML, PostScript, DjVu, OpenDocument, TNEF

Scientific: DICOM, MRC, FITS, XISF

Other: EXE/ELF/Mach-O, ZIP/RAR/GZ, ISO, LNK, Torrent, VCard, MIE, Lytro LFP, FLIR FPF, CaptureOne EIP

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.
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.